2011-12-30 35 views
1

我有一個使用mysql-python寫入MySQL數據庫的Python腳本。這對Linux和Windows很好,但在OSX上,這個庫對於我的客戶來說安裝起來太困難了。使用Python在OSX上寫入MySQL更容易設置

需要編輯配置文件,目錄符號鏈接,安裝gcc,xcode,...
非技術用戶的壓倒性過程。

那麼,有沒有更實用的方法來支持在OSX上寫MySQL?

一些潛在的替代品:

+0

mysql-python是最成熟的一個。一種可能性是爲你的客戶製作你自己的Mac OS X二進制發行版... – thesamet 2011-12-30 04:44:19

+0

不需要成熟的版本 - 只需簡單的選擇和插入 – hoju 2011-12-31 06:32:07

回答

2

UNFO幸運的是,目前確實沒有微不足道的解決方案。如果你需要在Python中使用MySQL,OS X上最簡單和最可靠的解決方案就是安裝所有東西 - Python,MySQLdb,任何其他需要的第三方Python軟件包,MySQL客戶端庫,以及MySQL服務器庫和實用程序 - 使用包裹管理系統,如MacPorts。試圖從不同來源安裝各種組件經常會遇到以下問題:不兼容的內置可執行文件和庫:32位與64位,不同的ABI(10.3與10.6)等。

對於安裝了Xcode和the MacPorts base system的系統,你可以建立和使用一個命令安裝所有東西:如果您需要MySQL服務器以及

sudo port install py27-mysql 

sudo port install py27-mysql mysql5-server 

所有的MacPorts安裝的可執行文件將默認在安裝,所以你只需要在那裏運行的東西:

/opt/local/bin/python2.7 

要爲你的用戶更容易,你應該能夠使用的MacPorts建立一套必要的端口爲二進制存檔並建立一個腳本安裝MacPorts基礎系統,然後安裝預建的軟件包。在MacPorts Guide here中有關於此的一些信息。但是,MacPorts 2.0.x的大部分功能已經過時。在指南更新之前,有信息從here開始。最安全的方法是爲每個支持的OS X版本創建一組不同的軟件包。它可能可能有可能在所需的最舊系統上構建一個向上兼容的集合:比如說,在10.5上構建包也可以在10.6和10.7系統上工作。爲了防止干擾客戶MacPorts安裝,您還可以從源代碼構建MacPorts基本系統,並將安裝根目錄更改爲/opt/local以外的內容。

OS X更習慣的方法是使用py2app創建一個包含Python和MySQL客戶端庫的應用程序包。我不知道是否有人成功地做到了。

另一個建議:如果你真的不需要遠程服務器,可以考慮使用SQLite代替。 Python標準庫中包含Support for SQLite

+0

我發現安裝PyMySQL沒有問題,並且具有相同的功能接口爲MySQL,所以更改很簡單。感謝您的意見。 – hoju 2012-01-06 03:20:03