Windows下安裝python MySQLdb遇到的問題及解決方法
片頭語:因為工作需要,在CentOS上搭建環(huán)境MySQL+Python+MySQLdb,個人比較習(xí)慣使用Windows系統(tǒng)的操作習(xí)慣,對純字符的OS暫時還不太習(xí)慣,所以,希望能在Windows系統(tǒng)上也搭建一個類似的環(huán)境,用于開發(fā)。下面介紹的是在Windows環(huán)境下編譯MySQLdb的過程。補(bǔ)充一句:最近在網(wǎng)上搜索到一個MySQLdb的Windows安裝包,使用起來會更方便一些,地址:http://www.codegood.com/archives/4
或者到 http://www.dbjr.com.cn/softs/73369.html下載當(dāng)然也可以到https://dev.mysql.com/downloads/connector/python/下載
mysql-connector-python是MySQL官網(wǎng)提供的專門連接python的驅(qū)動程序;使用起來很方便。文件里面有很多程序?qū)嵗﹨⒖肌?/p>
手工編譯MySQLdb的過程如下:
下面列舉出上面需要用到的軟件的下載地址:
MySQL - http://www.mysql.com/ <個人使用的MySQL的版本:mysql-essential-5.1.53-win32.msi,也許您下載的時候已經(jīng)有新的版本了。>
Python - http://www.python.org/ <個人使用的Python版本:python-2.6.6.msi>
MySQLdb - http://sourceforge.net/projects/mysql-python/ <個人使用的MySQLdb版本:MySQL-python-1.2.3.tar.gz>
1、安裝MySQL,選擇Custom,然后將“C Include Files / Lib Files”勾選上,如果使用Typical,則會出現(xiàn)問題(1),后面的配置也基本上都是默認(rèn)選項,除了額外將"添加到系統(tǒng)路徑"(Include Bin Directory in Windows PATH)這個復(fù)選框勾上。如果你對安裝MySQL不是很清楚,可以從網(wǎng)上搜索一下,相關(guān)的文章很多,如下:http://rangyang163.blog.163.com/blog/static/37743758200881203744469/
2、安裝Python,也基本上默認(rèn)的選項,只是把安裝路徑稍微改了一下。Python的默認(rèn)安裝路徑是"C:/Python26",個人習(xí)慣將其改為"C:/Program Files/Python26"
3、在安裝MySQLdb之前必須安裝setuptools,要不然會出現(xiàn)編譯錯誤。
Setuptools - http://pypi.python.org/pypi/setuptools <將滾動條向下拖,很快,就可以看到一串下載地址,個人使用的是:setuptools-0.6c11.win32-py2.6.exe,這是因為我使用的Python版本是2.66>
默認(rèn)安裝這個工具即可...
好了,可以正式開始安裝MySQLdb了,我們下載的這個tar.gz是源碼包,里面是沒有安裝程序的,需要先編譯,再安裝。<其實只要看看README就明白了。>
(1)將MySQL-python-1.2.3.tar.gz解壓到當(dāng)前目錄下,會出現(xiàn)一個MySQL-python-1.2.3文件夾;
(2)WIN+R,打開運(yùn)行對話框,輸入cmd,打開MS-DOS,進(jìn)入上面解壓的那個文件夾;(前提是你得明白cd是什么命令 :-)....)
(3)輸入setup.py build開始編譯...<額外補(bǔ)充一點,在編譯MySQLdb時需要C編譯器,如果已經(jīng)安裝了MSVC,則直接編譯即可。如果需要指定編譯器,可以使用compiler開關(guān)。如--compiler=mingw32則使用GCC作為編譯器,不過,前提是你需要安裝相應(yīng)的編譯器,并配置好環(huán)境變量才行。>
我在編譯過程中遇到以下問題:
1)問題: _mysql.c(34) : fatal error C1083: Cannot open include file: ‘config-win.h': No such file or directory
error: command ‘”C:/Program Files/Microsoft Visual Studio 9.0/VC/BIN/cl.exe”‘ failed with exit status 2
原因:原因是安裝MySQL的時候沒有安裝C語言庫。
解決:重新運(yùn)行MySQL的安裝程序,選擇Modify,把“C Include Files / Lib Files”勾選上,并安裝。
2)問題:Traceback (most recent call last):
File "setup.py", line 15, in <module>
metadata, options = get_config()
File "C:/MySQL-python-1.2.3/setup_windows.py", line 7, in get_config
serverKey = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, options['registry_key'])
WindowsError: [Error 2] The system cannot find the file specified
原因:MySQL for python 1.2.3仍然是在尋找MySQL5.0的版本
解決:1、打開目錄下site.cfg文件,修改最后一行為“registry_key = SOFTWARE/MySQL AB/MySQL Server 5.1”
2、打開setup_windows.py文件,修改第七行為“serverKey = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, 'SOFTWARE/MySQL AB/MySQL Server 5.1')”
3)問題:build/temp.win32-2.7/Release/_mysql.pyd.manifest : general error c1010070: Failed to load and parse the manifest. The system cannot find the file specified.
error: command ‘mt.exe' failed with exit status 31
原因:路徑發(fā)生變化?
解決:打開“你的PYTHON安裝目錄/Lib/distutils/msvc9compiler.py”文件,找到“l(fā)d_args.append('/MANIFESTFILE:' + temp_manifest)”這行代碼,將其改為“l(fā)d_args.append('/MANIFEST')”
(4)當(dāng)編譯完成以后,就可以輸入setup.py install了,現(xiàn)在終于大功告成了!
可以在DOS環(huán)境下輸入以下命令進(jìn)行測試:
C:/Users/Michael>python Python 2.6.6 (r266:84297, Aug 24 2010, 18:46:32) [MSC v.1500 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import MySQLdb >>>
這樣就說明MySQLdb已經(jīng)成功安裝了!接下來,就可以學(xué)習(xí)Python+MySQLdb+MySQL了,祝你愉快!
相關(guān)文章
在Python的Django框架中創(chuàng)建語言文件
這篇文章主要介紹了在Python的Django框架中創(chuàng)建語言文件的方法,以語言代碼來表示語言區(qū)域種類,需要的朋友可以參考下2015-07-07Python無法用requests獲取網(wǎng)頁源碼的解決方法
爬蟲獲取信息,很多時候是需要從網(wǎng)頁源碼中獲取鏈接信息的,下面這篇文章主要給大家介紹了關(guān)于Python無法用requests獲取網(wǎng)頁源碼的解決方法,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07關(guān)于阿里云oss獲取sts憑證 app直傳 python的實例
今天小編就為大家分享一篇關(guān)于阿里云oss獲取sts憑證 app直傳 python的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08如何使用python-opencv批量生成帶噪點噪線的數(shù)字驗證碼
這篇文章主要介紹了如何使用python-opencv批量生成帶噪點噪線的數(shù)字驗證碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12