[更新 2012-09-16]
这里可以下载已经打包好的EXE文件,http://sourceforge.net/projects/mysql-python/(国内需穿越才可访问)
DBank备份下载地址:http://dl.vmall.com/c0bgsx0s0p (Python 2.7版本 MySQL-python-1.2.3.win32-py2.7.msi)

为了给Python装个MySQLdb模块(这里说的是Windows),真是破费了不少时间。本来Python自带SQLite数据库模块,使用起来也挺方便的,但是SQLite不支持远程访问啊!!!所以只能用MySQL了。下面详细描述一下配置过程,以后可以参考!

安装MySQL

安装MySQL不用多说了,下载下来安装就是,没有特别需要注意的地方(本来是有的,不过有替代方案,见后文)。一个下载地址:

http://xiazai.xiazaiba.com/Soft/M/MySQL_5.5.20_win32_XiaZaiBa.zip

安装SetupTools

下载地址:http://pypi.python.org/pypi/setuptools 如果你不先安装SetupTools而是直接安装MySQLdb,那么很有可能会提示如下错误:

ImportError: No module named setuptools

上面的地址可以直接下载到exe,所以直接执行就是了。

安装MySQL-Python

MySQL-Python也就是MySQLdb了。可以去http://pypi.python.org/pypi/MySQL-python#downloads下载到源码(没有EXE了),解压后,打开cmd来到MySQL-Python的目录,执行如下命令:

setup.py build
setup.py install

如果不出意外的话,会提示如下错误:

E:\Code\Python\mysql>setup.py install
Traceback (most recent call last):File "E:\Code\Python\mysql\setup.py", line 15, in <module>metadata, options = get_config()File "E:\Code\Python\mysql\setup_windows.py", line 7, in get_configserverKey = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, options['registry_key'])
WindowsError: [Error 2]

一个可能可行的解决方案:打开setup_windows.py,然后将注册表操作的两行代码注释掉,并添加一行代码:

7
8
9
    #serverKey = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, options['registry_key'])#mysql_root, dummy = _winreg.QueryValueEx(serverKey,'Location')mysql_root = "C:\Program Files\MySQL\MySQL Server 5.5" #MySQL目录

接下来,再执行上面提到的build命令,如果MySQL的版本好的话,就没问题。不过很有可能提示如下错误:

......
_mysql.c(34) : fatal error C1083: 无法打开包括文件:“config-win.h”: No such file or directory
......

网上有人说,重装MySQL并把“C Include Files / Lib Files”勾选上,我这里依然有问题。这里推荐下载MySQL Connector

http://dev.mysql.com/get/Downloads/Connector-C/mysql-connector-c-6.0.2-win32.msi/from/http://ftp.jaist.ac.jp/pub/mysql/

安装好之后,把上面的mysql_root改为MySQL Connector的目录:

7
8
9
    #serverKey = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, options['registry_key'])#mysql_root, dummy = _winreg.QueryValueEx(serverKey,'Location')mysql_root = "C:\Program Files\MySQL\MySQL Connector C 6.0.2" #MySQL Connector C 6.0.2目录

然后再build一般就OK了,接着install即可。

关于重装MySQL

我开始并没有安装MySQL Connector C 6.0.2,而是选择了重装MySQL,也是一个烦人的过程。如果你卸载完MySQL之后重新安装,在MySQL配置的最后一步,很可能提示“ERROR 1045”的一个错误。这是因为上一次的配置文件没有删除。

可以在卸载MySQL后删除Program Files下的MySQL目录,如果是Windows 7,还需要删除C:\ProgramData\MySQL(非常重要),XP一般在C:\Documents and Settings\All Users\Application Data下。

CMySql类

进入cmd,打开python,尝试import看是否有异常:

import MySQLdb

没有异常就说明安装MySQLdb成功了。
下面是我自己简单写的一个CMySql类,可以对MySQL进行简单的增删改查:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#!/usr/bin/python
# -*- coding:utf-8 -*-"""CMySql类,简单的MySQL增删改查
@version: 0.1
@author: 代码疯子
@contect: stackexploit[AT]gmail.com
@see: http://www.programlife.net/
"""try:import MySQLdb
except ImportError:raise ImportError("[E]: MySQLdb module not found!")class CMySql(object):def __init__(self):self.Option = {"host" : "", "password" : "", "username" : "", "database" : ""}def setoptions(self, host, pwd, user, db):self.Option["host"] = hostself.Option["password"] = pwdself.Option["username"] = userself.Option["database"] = dbdef start(self):try:self.db = MySQLdb.connect(host = self.Option["host"],user = self.Option["username"],passwd = self.Option["password"],db = self.Option["database"])self.create()except Exception, e:print eraise Exception("[E] Cannot connect to %s" % self.Option["host"])def create(self, sqlstate):"""@todo: sqlstate可以自己改成其他参数,下同"""self.cursor = self.db.cursor()self.cursor.execute(sqlstate) #创建self.db.commit()self.cursor.close()def insert(self, sqlstate):"""@todo: 虽然函数名是insert,不过增删改都行"""self.cursor = self.db.cursor()self.cursor.execute(sqlstate) #增、删、改self.db.commit()self.cursor.close()def query(self, sqlstate):self.cursor = self.db.cursor()self.cursor.execute(sqlstate) #查qres = self.cursor.fetchall()self.cursor.close()return qresdef one_query(self, sqlstate):self.cursor = self.db.cursor()self.cursor.execute(sqlstate) #查qres = self.cursor.fetchall()[0]self.cursor.close()return qresdef close(self):self.db.close()

下载CMySql类

Windows下Python添加MySQLdb扩展模块相关推荐

  1. 简述Linux和Windows下Python搭建步骤

    简述就Windows和Linux环境下安装Python的步骤. Python环境搭建首先到官网(www.python.org)下载相应的安装版本.主要分为Windows和Linux两种: 一.Linu ...

  2. windows下python环境搭建_Linux/Windows下Python环境搭建步骤

    Python环境搭建首先到官网(www.python.org)下载相应的安装版本.主要分为Windows和Linux两种: 一.Linux下Python环境搭建 一般情况下,Linux系统都已经预安装 ...

  3. python3.7安装步骤-Windows下Python 3.7.0的安装步骤,Python370

    Windows下Python 3.7.0的安装步骤 由于Python版本太新的话,能会出现不稳定的情况,所以在这里,作者建议用版本不太新的Python.在这里,我用的是Python3.7.0版本(其他 ...

  4. windows下 python 使用 pip 安装TA-Lib报错的原因及解决方法

    windows下 python 使用 pip 安装TA-Lib报错的原因及解决方法 问题环境 问题描述 问题原因 & 解决办法 问题环境 Windows 10 x64 .python 3.8. ...

  5. Windows下Python开发环境搭建及 Python的HelloWorld示例

    最近较忙,都么时间更新博客了.本文介绍Windows下Python开发环境的搭建. 一.从链接http://www.python.org/downloads/ 下载安装包,注意32位和64位安装包区别 ...

  6. Windows下Python 3.6 + VS2017 + Anaconda 解决Unable to find vcvarsall.bat问题

    Windows下Python 3.6 + VS2017 + Anaconda 解决Unable to find vcvarsall.bat问题 参考文章: (1)Windows下Python 3.6 ...

  7. Windows 下python的tab自动补全

    Windows 下python的tab自动补全 对于新学python的朋友来说,python模块的功能多而难记,mac和Linux中有tab自动补全命令功能,使用Windows的同学们怎么办?下面我们 ...

  8. python2没有pip命令_解决Windows下python和pip命令无法使用的问题

    一. python命令找不到 安装python之后经常会出现下面的问题 , python命令找不到,这是因为Windows的环境变量中没有定义python的安装路径 这个时候我们先找到python的安 ...

  9. windows下批量添加用户

    windows下批量添加用户 添加单个用户的命令是dsadd 关于dsadd命令详细的参数可以参考微软官方的文档: https://docs.microsoft.com/en-us/previous- ...

最新文章

  1. 使用nc传输文件和目录【转】
  2. PHP7Grafika,PHP图片处理库Grafika详细教程(3):图像属性处理
  3. 数据库系统概论:第八章 数据库编程
  4. java 配置文件加载_Java加载配置文件类
  5. hp laser103 属性没有配置项_(常见解决方法)UEditor报错“后端配置项没有正常加载,上传插件不能正常使用”...
  6. linux对目录进行操作,Linux 基础:对文件和目录进行操作的 Linux 和 Unix 命令 笔记...
  7. 共筑计算新生态 共赢数字新时代
  8. html xsl xml文件,用XSL显示XML文件看起来像HTML
  9. Fragment生命周期(转)
  10. 思科CDP/LLDP协议
  11. 计算机怎样更新卡驱动,显卡驱动怎么升级
  12. 股票大作手回忆录投机感悟
  13. php 写入exif,用PHP将EXIF写入JPG
  14. 手机点餐系统概述_廖师兄 微信点餐系统 springcloud学习笔记
  15. 2021鹏业安装算量软件常见问题整理(二十)
  16. 亚马逊正在逐渐压垮出版社,帮了世界一把
  17. GP232RL直接替代FT232RL串口芯片uart接口
  18. Jmeter源码分析(二)
  19. 关于QT中“崩溃”问题
  20. 当仁不让!一文看尽MWC舞台上的人工智能

热门文章

  1. 自定义异常类: 运行期间跟编译期间的区别
  2. 你知道为什么Facebook的API以一个循环作为开头吗?
  3. MySQL 查询重复记录
  4. 张北将成规模150万台服务器的云计算产业基地
  5. xmemcached发布1.3.6
  6. FFmpeg #39;scale#39; filter not present, cannot convert pixel formats.
  7. Mybatis Interceptor 讲解
  8. 怎样打开win7和vista系统的telnet服务
  9. CentOS 7编译安装php7.0.7以及可能遇到的问题的解决方案
  10. CUDA学习(七十一)