在windows下面默认安装的python2.6再安装MySQLdb会遇到很多神奇的问题,如缺少库,编译错误等

例如python2.5出现

import MySQLdb
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python25\Lib\site-packages\MySQLdb\__init__.py", line 19, in <module>
    import _mysql
ImportError: DLL load failed: 找不到指定的程序。

解决方案:

把mysql安装目录的bin\libmySQL.dll文件复制到python安装目录的Lib\site-packages下

python2.6出现

Python 2.6 (r26:66721, Oct  2 2008, 11:35:03) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import MySQLdb
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python26\Lib\site-packages\MySQLdb\__init__.py", line 19, in <module>     import _mysql
ImportError: DLL load failed: 找不到指定的模块。

下载libmmd.dll和libguide40.dll两个dll文件并复制到python安装目录的Lib\site- packages下

两个dll文件Google一下即可找到

还有一个

Python 2.6 (r26:66721, Oct  2 2008, 11:35:03) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import MySQLdb
D:\usr\local\Python26\lib\site-packages\MySQLdb\__init__.py:34: DeprecationWarning: the sets module is deprecated
  from sets import ImmutableSet

解决方案:

1) 在文件 "__init__" 中将:

from sets import ImmutableSet 
class DBAPISet(ImmutableSet): 

替换为

class DBAPISet(frozenset)

2) 在文件 "converters.py"中移除:

from sets import BaseSet, Set

3) 在文件 "converters.py", 把 "Set" 改为 "set" (重要提示: 只有2个地方要改):

line 48: return set([ i for i in s.split(',') if i ])
line 128: set: Set2Str,

参见:

http://sourceforge.net/projects/mysql-python/forums/forum/70460/topic/2316047?message=5808948

最后再介绍一个无敌方法:

国外有个大牛直接帮我们编译好了不会出问题的MySQLdb, 去下面的网址下载安装就能解决了

http://www.codegood.com/archives/4

href="http://www.codegood.com/download/11/">MySQL-python-1.2.3.win-amd64-py2.7.exe