python与mysql数据库搭档开发应用应该是非常合适的,要在python中使用mysql,需要使用模块MySQLdb,但是一句import MySQLdb想要成功执行可不容易。
MySQLdb这个模块开发者没有提供windows的exe或者msi包,在发布的readme文件中作者也并未过多地提及win环境下如何安装的问题,于是编译安装的时候自然是报错接踵而至。
凡事有google,但是解决了一个错误,立马又来了另一个,对python并不熟悉,所以解决起来很困难,这里共享一下,我收集到的关于此模块安装过程中的各类问题及解决方案(来自百度空间的一篇好文章)。
安装需要运行setup.py install或者先运行setup.py build再运行setup.py install或者一起运行setup.py install build。
1 如果使用mysql 5.1需要修改site.cfg文件中registry_key = SOFTWARE\MySQL AB\MySQL Server 5.0修改为5.1,否则提示
Traceback (most recent call last):
File ” ….. \MySQL-python-1.2.3.tar\MySQL-python-1.2.3\setup.py”,
line 15, in <module>
metadata, options = get_config()
File ” ….. \MySQL-python-1.2.3.tar\MySQL-python-1.2.3\setup_windo
ws.py”, line 7, in get_config
serverKey = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, options['registry_ke
y'])
WindowsError: [Error 2]
2 继续setup.py build可能会发生:Unable to find vcvarsall.bat1).首先安装MinGW,在MinGW的安装目录下找到bin的文件夹,找到mingw32-make.exe,复制一份更名为make.exe;(不改也可以)
2).把MinGW的路径添加到环境变量path中,比如我把MinGW安装到D:\MinGW\中,就把D:\MinGW\bin添加到path中;
3).打开命令行窗口,在命令行窗口中进入到要安装代码的目录下;
4).输入如下命令就可以安装了。
setup.py install build –compiler=mingw32
或者在setup.cfg中加入:
[build]
compiler = mingw32
3 有可能安装的mysql不包含lib目录和include目录,可以从mysql下载c语言数据访问库,其中包含include 和lib,将其复制到mysql安装目录 库文件中lib下的dll和lib文件要放在安装目录下的lib\opt子目录中4 有可能在编译过程中有winsock相关的头文件包含混乱的情况,在setup_windows.py中把libraries = [ 'kernel32', 'advapi32', 'wsock32', client ]中的wsock32修改为ws2_32即可。
5 编译中可能发生gcc: /Zl: No such file or directory错误。这个参数是vc特有的编译参数,如果使用mingw的话因为是gcc所以不支持。可以在setup_windows.py中去掉
/Zl 从 .obj 文件中移除默认库名6 mysql头文件config-win.h文件中发生conflicting types for ‘mode_t’ 错误。
将config-win.h的对应行代码注释掉即可7 发生许多undefined reference to “××××××××××××××××”错误,这个是链接时的lib文件有问题造成的。可能是没有指定链接的文件。
这个由于错误太多,没有具体分析。最后互联网上好人很多,这里有已经编译好的直接打包就好http://www.lfd.uci.edu/~gohlke/pythonlibs/。(我的杀软提示这个网页有病毒,不过下载的文件没问题。。。。。)
最后的那个网站真是给力,很多第三方的python模块都被打包成exe了,非常方便windows环境下开发。

很遗憾,我看不懂这个技术文章……
谢谢经常光顾,呵呵