转自:http://www.hackbase.com/subject/2009-12-30/17160.html
非常感谢这位作者,帮了我的大忙,按照文中的描述,顺利的完成了,python26 mysqldb连接数据库
今天无事想弄下python做个gui开发,最近发布的是python 3k,用到了数据库,通过搜索发现有一个mysqldb这样的控件,可以使用,就去官方看了下结果,没有2.6以上的版本
没办法就下了一个2.6,如果用2.4就太低了,又折腾了,半天找到了MySQL-python-1.2.2.win32-py2.6.exe 这个安装文件,安装完成,执行 import MySQLdb 出现问题提示:
File "C:\Python26\lib\site-packages\MySQLdb\__init__.py", line 19, in <module>
ImportError: DLL load failed: 找不到指定的模块。
经过无数的查找,发现官方的说法也也不是很正确,官方给的解决办法是 LD_LIBRARY_PATH 加载这样一个环境变量,加载的一样不能解决问题,更多的办法是指linux下的处理,
win 上面没有了,又找了无数资料,发现是缺少2个dll文件分别为 libguide40.dll ,libmmd.dll 搜索下,下载的地方不少,然后copy到 WINDOWS\system32 下面现在执行 又出现
了错误,这东西很神奇啊,错误提示为:
sys:1: DeprecationWarning: the sets module is deprecated
这个错误,我又找了无数的资料,看了很多东西,最后发现是 2.6这个版本已经不推荐使用 sets 这个模块了,但是为了兼容性依然加载了这个模块但是做了警告提示,我想了很
多办法不让警告信息放出来或者捕捉异常,等等没有成功,采取了最恶劣的方式,修改原文件,进入python安装目录找到如下文件 Python26\Lib\sets.py 注释掉 83-85行
#import warnings
#warnings.warn("the sets module is deprecated", DeprecationWarning,stacklevel=2)
就可以了,我上面给合并成2行了。
到现在 mysqldb 安装完毕,没有了任何错误输出,也明白了,为什么官方没有推出2.6版本的mysqldb了。
python3k这个本版对sets module 应该已经支持了,所以官方从发布开始,一直没有推出真正的版本,也就是说现在python3k还不能使用mysqldb这个空间连接mysql 。而且很多工
具现在也都不支持3k看来要实现 3k的普及还有很多的路要走,再这个阶段想要学习python的人要不断的选择跟折磨中度过了。
我的gui还没有开始,就用去了一天的时间。