轉載pythonmysql資料庫連線

自娛發表於2016-04-07

Windows xp 下安裝MySQLdb 昨天在Windows XP下安裝MySQLdb模組,安裝了一天,弄得我很是鬱悶,到晚上的時候終於安裝成功。先將過程和結果記錄下來。我的Python是2.6的。

1. mysql版本。首先我的mysql版本是4.1的。在安裝mysql4.1,出現了很多的問題。Google了一下,現在mysql用的比較多是5.1 版本,最終我就下了一個MySQL5.1.34ForWindows安裝版x32.rar(這個迅雷上就有)。安裝mysql主要注意的是在:(1)在 Windows防火牆中的“例外”新增tcp3306埠,否則連不上; (2)如果時解除安裝後再裝,最後的辦法是將mysql清理乾淨,併為了保險起見,在命令下停止mysql服務,方法是net stop mysql。這兩個問題是我經常碰到的。

2. MySQLdb版本。MySQL-python-1.2.2.win32-py2.6.exe 。因為我用的是Python版本是2.6,在http://sourceforge.net/projects/mysql-python,就找不到對應 的版本,我就下了MySQL-python-1.2.3c1.tar.gz來安裝。這個過程很鬱悶,因為出現四大主要的錯誤。

(1)缺少setuptools模組。這個很好辦,去下載一個就是的。安裝好。

(2)然後是安裝MySQLdb。在Python setup.py install後,出現serverKey = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, options[`registry_key`]) WindowsError: [Error 2]錯誤。按照http://alva.tabex.org/2009/06/20/python-26-mysqldb-12-mysql51%E5 %AE%89%E8%A3%85/所示的方法去解決(那個時候我的MySQL版本是4.1),還是出現(3)的錯誤。我看他用的是MySQL5.1,所以 我不管了,直接下了MySQL5.1.34ForWindows安裝版x32.rar來用,安裝之,這個過程就出現了1.所示的各中狀況,最後終於解決 了。

(3)然後import MySQLdb。出現File “C:Python26libsite-packagesMySQLdb\__init__.py”, line 19, in ImportError: DLL load failed: 找不到指定的模組。查詢了一下各位高人的經驗,發現是缺少2個dll檔案分別為 libguide40.dll和libmmd.dll。這兩個檔案迅雷上就有,下載之,然後複製到 WINDOWSsystem32 。這個問題就這樣解決了。

(4)然後import MySQLdb。再出現sys:1: DeprecationWarning: the sets module is deprecated 的錯誤,再次搜尋,原因是2.6不知sets這個模組,不過已經新增了set內建函式。找到MySQLdb資料夾的中__init__.py,註釋掉 from sets import ImmutableSet class DBAPISet(ImmutableSet):新增class DBAPISet(frozenset):;找到converters.py註釋掉from sets import BaseSet, Set。然後修改第45行和129行中的Set為set。 最終所有問題解決了,匯入成功。已經耗費了我一整天時間。

Python 中的 setuptools 簡介

setuptools 是一組 Python 的 distutils 工具的增強工具(適用於 Python 2.3.5 以上的版本,64 位平臺則適用於 Python 2.4 以上的版本),可以讓程式設計師更方便的建立和釋出 Python 包,特別是那些對其它包具有依賴性的狀況。

由 setuptools 建立和釋出的包看起來和基於 distutils 釋出的包沒什麼不同。終端使用者不需要事先安裝 setuptools 甚至根本不需要知道 setuptools 的存在,而程式設計師也不需要附上完整的 setuptools,只需要包含一個大小約 8K 的 .py 指令碼作為啟動模組,就可以在終端使用者沒有安裝適當版本的 setuptools 時讓這些包自動下載和安裝 setuptools。 特性 在構建時使用 EasyInstall 工具自動查詢、下載、安裝、升級所依賴的軟體包,EasyInstall 支援通過 HTTP、 FTP、 Subversion 以及 SuroceForge 下載軟體包,並能自動掃描 PyPI 上的網頁以找到下載連結。(對於熟悉 Perl 的使用者, PyPI 是 Python 領域最接近的 CPAN 了。) 建立 Python Eggs,一種單檔案的可匯入的釋出格式。在包中的目錄中可以包含資料檔案,允許程式碼訪問這些資料檔案。(Python 2.4 distutils 也支援這個特性,不過 setuptools 能為面向 Python 2.3 的包也提供這樣的特性,此外還支援訪問壓縮包中的資料。) 自動包含程式設計師的原始碼樹中的所有包,而不需要在獨立的 setup.py 中逐個宣告。自動在原始碼釋出中包含所有相關的檔案,而無需建立 MANIFEST.in 檔案,也不必在原始碼樹改變後強制生成 MANIFEST。自動為程式設計師專案中的任意數量的“main”函式生成封裝指令碼或者 Windows (控制檯或者圖行使用者介面) .exe 檔案。(注:這並不是 py2exe 的替代方案;這裡生成的 .exe 需要基於已安裝的 Python,而 py2exe 則不需要。) 透明的 Pyrex(Pyrex 允許程式設計師編寫混合 Python 和 C 資料型別的程式碼,並編譯為 Python 的 C 擴充套件。)支援,這樣程式設計師的 setup.py 得以列出 .pyx 檔案並且即使終端使用者沒有安裝 Pyrex 也能夠執行(當然這需要程式設計師在原始碼釋出包中包含 Pyrex 生成的 C 程式碼)。對建立命令列別名的支援,setuptools 可以幫助程式設計師為釋出包建立專案需要的、每個使用者或者全域性的快捷方式,這通常用於命令列或選項中。上傳發布包到 PyPI 的支援,setuptools 可以幫助程式設計師將原始碼包或者 eggs 釋出到 PyPI 上。可以以“開發模式”釋出程式設計師的專案,這樣它可以出現在 sys.path 中,而程式設計師依然可以直接編輯原始碼的工作副本。方便的為 distutils 擴充套件新功能或者 setup() 引數,並能夠釋出可供不同的專案重複使用的擴充套件包,而無需複製程式碼。建立具有自動發現擴充套件功能的可擴充套件的應用程式或框架,只要在專案的安裝指令碼中簡單的聲 明“入口點(entry points)”即可。安裝 使用 ez_setup.py 安裝 這是 setuptools 自豪的一種安裝方式,只需要一個大約 8K 作為的指令碼,就能自動為使用者安裝包括 setuptools 自身在內的許多 Python 包。使用這種方式,使用者只需要下載 ez_setup.py 並執行,就可以自動下載和安裝適合使用者當前 Python 版本的適當的 setuptools egg 檔案(當然,使用者需要 Python 2.3.5 以上的版本,64 位作業系統的使用者則需要 Python 2.4 以上的版本)。此外,這段指令碼還會將可執行的 easy_install 指令碼安裝到使用者所有的作業系統 Python 可執行指令碼正常應該安裝的位置(例如,Windows 使用者會安裝到 Python 安裝目錄下的 Scripts 目錄中)。關於這種安裝方法的詳細說明和注意事項,請參考其官方說明。 使用完整的安裝包安裝 儘管上面的方法是 setuptools 引以自豪的,不過,我認為它更適合基於 setuptools 釋出產品的開發人員。當然,使用者也可以使用 setuptools 在 Python Cheese Shop 上釋出的合適的完整的釋出版本來安裝。對於使用 Windows 的使用者,這可能是更方便的方法,至少在編寫這段文字的時候,setuptools-0.6c5.win32-py2.5.exe 可能正是您想要的。 許多 Linux 發行版的官方包管理倉庫都包含 setuptools 的某個版本。例如,對於 Ubuntu 使用者,安裝 setuptools 只是簡單的進行如下操作: # apt-get install python-setuptools 參考連線 setuptools 官方文件 – 關於 setuptools 的官方資訊,主要面向開發人員。 Python Cheese Shop 上的 setuptools 頁面 – 你可以在這裡下載最新的安裝版本,如 setuptools-0.6c5.win32-py2.5.exe。 ez_setup.py 原始碼(0.6c5) view plaincopy to clipboardprint? 來源:http://xuecan.blogspot.com/2007/05/python-setuptools.html


相關文章