首頁  >  文章  >  資料庫  >  python之mysqldb模組在windows下安裝方法

python之mysqldb模組在windows下安裝方法

黄舟
黄舟原創
2017-09-08 11:32:231927瀏覽

這篇文章主要介紹了windows下python之mysqldb模組安裝方法,需要的朋友可以參考下

之所以會寫下這篇日誌,是因為安裝的過程有點虐心。目前這篇文章是針對windows作業系統上的mysqldb的安裝。安裝python的mysqldb模組,首先當然是找一些官方的網站去下載:https://pypi.python.org/pypi/MySQL-python。下載後,cmd進入MySQL-python-1.2.3資料夾,依照常規的執行python setup.py install 指令安裝此模組,然後就報錯了:

   這個報錯很明顯,print

  進行python前,應該先確定目前mysqldb的各個版本都支援python的哪些版本。部分截圖如下:

mysql-python1.2.5是目前最新的一個版本,這個版本支援mysql3.23-5.5,python2.4-2.7的,不支援python3系列。介於安裝時目前系統的python是3.7.11的,在卸載的時候,報錯了:

there is a problem with this windows installer package.A programe run as part of the setupdid not finish as expected .Contact your support personnel or package vendor.

#估計這個問題可能是檔案缺損導致的,於是嘗試了網路上說的一些解決方法:

方法一:重新執行安裝程序,選擇repair,修復完再卸載。 (結果:無用,repair的時候報另外一個網路異常錯誤)
方法二:安裝一個其他版本的python,再卸載python3.7.11.(結果:無用,安裝新的版本產生的檔案不會修復老版本檔案的缺失)
方法三:刪除註冊表的信息,或使用Your Unin-staller!強制刪除python3.7.11.(結果:終於給刪除成功了,

ps:http:/ /wenku.baidu.com/link?url=dujEO65nXySNvwUyDJVR5kmbrlcqp7WsvhLFGN_7L5q-58EoVjyw4DjiTS_J5PomPzgvdG69uulXDI8TbMgJlXkY15PomPzgvdG69uulXDI8TbMgJlXkY ://www.jb51.net/softjc/500307.html

以上3個解決方法只有第三個最暴力的方法解決我的問題,前面2種有些網友都能使用,操作後也能解決問題。卸載高版本的python後,終於裝上了低版本的python。

接著安裝mysqldb,然後又報了一個錯誤:缺少c語言的編譯環境,需要去下載一個VC環境。這其實還蠻好辦,錯誤提示裡本來就有下載連結(忘記截圖了,抱歉)https://www.microsoft.com/en-us/download/confirmation.aspx?id=44266,下載好VCForPython27.msi安裝就不報這錯了。但是報另一個錯誤。 (又忘了截圖),然後覺得很有必要在MySQL-python-1.2.3資料夾下查看下readme了,裡面一般都會記載著怎麼安裝和怎麼使用。部分關於windows系統安裝的重要資訊翻譯後截圖如下:

Windows.......
我不做Windows。 但是如果有人给我提供了一个包Windows,我会使它可用。 不要问我有关Windows的帮助因为我不能帮助你。
一般来说,运行setup.py与上面类似::
 C:\ ...> python setup.py install C:\ ...> python setup.py bdist_wininst
后面的示例应该构建一个Windows安装程序包,如果你有正确的工具。 无论如何,你必须有一个C编译器。另外,你必须设置一个环境变量(mysqlroot)这是MySQL安装的路径。 在理论上,它会的可能从注册表中获取这些信息,但是像我说的,
我不做Windows,但我会接受这样做的补丁。
在Windows上,您肯定必须编辑site.cfg,因为有在MySQL包中没有mysql_config。

然後開始默默的安裝mysql,去官網下了個5.5.7版本的,安裝驗證連接DB時一直報錯:ERROR 1045 (28000): Access denied for user 'mysql'@'localhost' (using password: NO)

這個百度下,在安裝資料夾的my.ini裡增加skip- grant-tables就可以了

[mysqld]
skip-grant-tables
# The TCP/IP Port the MySQL Server will listen on
port=3306

然後就能正常連接DB並訪問DB了,這下我覺得應該沒問題,然而安裝時,又報了一個錯:

E:\Code\Python\mysql>setup.py install 
Traceback (most recent call last): 
 File "E:\Code\Python\mysql\setup.py", line 15, in <module> 
 metadata, options = get_config() 
 File "E:\Code\Python\mysql\setup_windows.py", line 7, in get_config 
 serverKey = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, options[&#39;registry_key&#39;]) 
WindowsError: [Error 2]

可行的解決方法:開啟setup_windows.py,然後將登錄操作的兩行程式碼註解掉,並新增一行程式碼:

#

#serverKey = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, options[&#39;registry_key&#39;]) 
 #mysql_root, dummy = _winreg.QueryValueEx(serverKey,&#39;Location&#39;) 
 mysql_root = "C:\Program Files\MySQL\MySQL Server 5.5" #MySQL目录

然後接著安裝,又報了一個錯誤:

可行的解決方法:下載MySQL Connector(位址:http:// dev.mysql.com/get/Downloads/Connector-C/mysql-connector-c-6.0.2-win32.msi/from/http://ftp.jaist.ac.jp/pub/mysql/ ),然後修改setup_windows.py的程式碼:

#serverKey = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, options[&#39;registry_key&#39;]) 
 #mysql_root, dummy = _winreg.QueryValueEx(serverKey,&#39;Location&#39;) 
 mysql_root = "C:\Program Files\MySQL\MySQL Connector C 6.0.2" #MySQL Connector C 6.0.2目录

接著執行安裝,天啊,終於成功了。

import MySQLdb

if __name__ == "__main__":
 test= MySQLdb.connect("localhost","root","root1234","mysql" )
 cur = test.cursor()
 cur.execute(&#39;show databases;&#39;)
 for data in cur.fetchall():
  print data

列印結果如下:

#

D:\Python27\python.exe D:/untitled/mysql_test.py
(&#39;information_schema&#39;,)
(&#39;mysql&#39;,)
(&#39;performance_schema&#39;,)
(&#39;test&#39;,)

Process finished with exit code 0

之前學習RF的時候安裝過第三方函式庫卻從未如此虐心過,也有可能當時使用的本來就是低版本的python,而且當時機器上有各種程式的編譯環境,但是暴露出一個問題,就是安裝三方庫時候沒有一套通用的方法幫助快速安裝,基於狗血的經歷,特做以下小結:

1、安裝前看下安裝文件裡的read me和下載頁面的一些使用說明(一般作者都是會編寫安裝手冊和test文檔的,無論是哪類作業系統多多少少都是會介紹的)。


2、確定python三方函式庫支援python的哪個版本,目前看python2.7.11還挺好的。

3、確定三方庫安裝時需要哪些其他的環境和依賴的軟體。

以上是python之mysqldb模組在windows下安裝方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn