在使用Python操作MySQL資料庫時,在window平台上安裝MySQLdb模組時,你不得不面對各種“詭異”的問題,讓你摸不著頭腦,甚至一整天都被MySQLdb氣著,以至於拋棄使用Python,這種錯誤,在自己剛開始接觸Python出現過,當時真的很冒火!
PS:其實現在的MySQL模組安裝已經很簡單,也不會出現過多的問題了,一般都是安裝完MySQL-python-1.2.3.win32-py2.7.exe這個檔案,都能應該能成功import MySQLdb了!可以去這裡下載安裝(MySQLDB下載)。
很多時候,在window平台上安裝某些Python第三方模組時,都會碰到很多雖小但很麻煩的安裝錯誤,沒法子,可能是國內Python不活躍引起的,關注的人少,解決的問題當然也少了,最後,推薦一個眾多第三方window平台的Python模組:Python第三方Window模組安裝檔案。
好了廢話如此之多,開始正題吧。
常見問題:
1.ImportError: DLL load failed: 找不到指定的模組。
—————————————————————————————————-
D:\Program Files\Python2.6>python
Python 2.6.1 (r261:67517, Dec 4 2008, 16:51:00) [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 “D:\Program Files\Python2.6\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下。
參見:http://sourceforge.net/forum/message.php?msg_id=5613887
2.ImportError: DLL load failed: 找不到指定的模組。
—————————————————————————————————-
D:\Program Files\Python2.6>python
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:\Program Files\Python2.6\lib\site-packages\MySQLdb\__init__.py:34: DeprecationWarning: the sets module is deprecated
from sets import ImmutableSet
—————————————————————————————————-
解決方案:
1) file “__init__”, replace:
from sets import ImmutableSet
class DBAPISet(ImmutableSet):
with
class DBAPISet(frozenset)
2) file “converters.py”, remove:
from sets import BaseSet, Set
3) file “converters.py”, change “Set” by “set” (IMPORTANT: only two places):
line 48: return set([ i for i in s.split(',') if i ])
line 128: set: Set2Str,
另外,你也能從這裡得到其他的回答(MySQL)