2009-09-27 154 views
1

我一直在研究如何在Mac上爲Python安裝MySQLdb模塊。並且所有的修改最終都會傳遞到安裝MySQL,因爲模塊需要一個mysql_config。但我不明白爲什麼它需要?爲什麼MySQLdb for Mac必須安裝MySQL才能安裝?

MySQLdb假設是想要連接到服務器的客戶端的客戶端模塊。但是現在我必須先在客戶端上安裝服務器才能連接到另一臺服務器?

回答

1

MySQLdb是而不是客戶端模塊本身。它是Python程序和標準MySQL客戶端庫之間的包裝或接口。 MySQLdb符合Python standard DB API。還有其他適用於其他數據庫管理器的適配器。使用通用API使得在Python中編寫與數據庫無關的代碼變得更加容易;適配器處理(大部分)各種數據庫客戶端庫之間的混亂差異。因此,您確實需要安裝MySQL客戶端庫;有幾種方法可以做到這一點:最簡單的選擇可能是從mysql.com下載預構建庫,或者可以使用包管理器(如MacPorts)來安裝它們和其他依賴項。

1

我不確定MySQLdb的具體情況,但很可能需要編譯/安裝頭文件信息。它使用mysql_config的位置來知道適當的頭文件的位置。 Ruby on Rails的MySQL Gem需要同樣的東西,即使它只是連接到MySQL服務器。

1

它需要的是服務器附帶的客戶端庫和頭文件,因爲它只是一個Python包裝器(它位於_mysql.c;並且包含在MySQLdb包中的封裝器的DB-API接口)在原始C MySQL API上。

1

只是爲了澄清什麼其他應答者說:你不需要安裝一個MySQL服務器,但你需要安裝MySQL 客戶庫。但是,無論出於何種原因,MySQL都不會像客戶端Linux一樣爲客戶端庫提供單獨的下載。

3

只是爲了完成正確的答案,這裏有一個小的如何在MacOS X 10.6上安裝MySQLdb。這被張貼on my blog,你可能會檢查出更多的信息(和鏈接,因爲我是一個新的用戶在stackoverflow,只能添加一個)。

  • 下載MySQL MacOS X 10.5(x86_64)焦油球。目前v10.5,直到有一個MacOS X v10.6。
  • 獲取MySQL-python(MySQLdb)的副本。
  • 安裝選項安裝或下載Snow Leopard CD上的最新XCode工具。你需要它來編譯。

我沒有介紹MySQL的安裝,但是當你這樣做的時候,下面是你如何安裝MySQLdb。

shell> PATH="/usr/local/mysql/bin:$PATH" 
shell> tar xzf MySQL-python-1.2.3c1.tar.gz 
shell> cd MySQL-python-1.2.3c1 
shell> ARCHFLAGS="-arch x86_64" /usr/bin/python setup.py build 
shell> /usr/bin/python setup.py install 

目前正在完成MySQL連接器/ Python的工作。這是MySQL協議的純Python實現,因此您無需安裝任何MySQL軟件或編譯即可開始工作。