2009-12-15 94 views
2

我在Mac OSX Snow Leopard上安裝Python MySQL連接器(MySQL-python-1.2.3c1)時出現問題。在Mac上安裝MySQL-python-1.2.3c1的問題Snow Leopard

系統狀態

我已經手動編譯安裝的: 的mysql-5.1.41

這似乎很好地工作,因爲我可以創建和查詢從命令行的數據庫。

我編: 的MySQL中的python-1.2.3c1

我首先設置在site.cfg文件中的以下內容:

mysql_config = /usr/local/mysql/bin/mysql_config 

我然後建立和編譯MySQL- python-1.2.3c1遵循其指南:

sudo python setup.py build 
sudo python setup.py install 

我現在測試installa重刑與Python:

python -c "import MySQLdb" 

錯誤消息

這就給了我下面的錯誤,而我難倒就如何解決它:

Traceback (most recent call last): 
    File "<string>", line 1, in <module> 
    File "build/bdist.macosx-10.6-universal/egg/MySQLdb/__init__.py", line 19, in <module> 
    File "build/bdist.macosx-10.6-universal/egg/_mysql.py", line 7, in <module> 
    File "build/bdist.macosx-10.6-universal/egg/_mysql.py", line 6, in __bootstrap__ 
ImportError: dlopen(/Users/username/.python-eggs/MySQL_python-1.2.3c1-py2.6-macosx-10.6-universal.egg-tmp/_mysql.so, 2): Symbol not found: _mysql_affected_rows 
    Referenced from: /Users/username/.python-eggs/MySQL_python-1.2.3c1-py2.6-macosx-10.6-universal.egg-tmp/_mysql.so 
    Expected in: flat namespace 
in /Users/username/.python-eggs/MySQL_python-1.2.3c1-py2.6-macosx-10.6-universal.egg-tmp/_mysql.so 
mymac: username$ 

事情我ve已經試過

我看過這個博客antoniocangiano.com但它是一箇舊版本MySQL-python並不適用。但我嘗試添加它提到的軟鏈接。

然後我看了這篇博文:http://blog.some-abstract-type.com/2009/09/mysql-python-and-mac-os-x-106-snow.html。並嘗試用ARCHFLAGS設置編譯 - 但沒有喜悅。

請幫助

如果您有任何想法,請讓我知道。

非常感謝

奔...

回答

1

首先,我建議使用Mac OS X 10.5 64位(x86_64)的MySQL二進制文件。焦油球在MacOS X 10.6上運行。

你說你用ARCHFLAGS。然而,再次嘗試這樣的:

shell> ARCHFLAGS="-arch x86_64" python setup.py build 
shell> sudo python setup.py install 

因此建設作爲普通用戶,安裝的根。 (最好刪除源代碼,並解壓縮網站。再次cfg文件)。

+0

真棒,這工作,我會把我的筆記下面。 – emson 2009-12-15 15:18:40

+0

我剛剛刪除了舊版本的MySQL-python-1.2.3c1。 然後再次提取焦油球並修改site.cfg文件。這一次我把mysql_config註釋掉了,因爲它在我的$ PATH中。 然後我運行了上面的命令,它工作正常。 非常感謝...... PS我喜歡你的博客。 Ben ... – emson 2009-12-15 15:21:46

1

什麼

otool -L /Users/username/.python-eggs/MySQL_python-1.2.3c1-py2.6-macosx-10.6-universal.egg-tmp/_mysql.so 

報告?

+0

嗨thouis 它給了我下面的: /Users/username/.python-eggs/MySQL_python-1.2.3c1-py2.6-macosx-10.6-universal.egg-tmp/_mysql.so: \t /usr/lib/libz.1.dylib(兼容版本1.0.0,當前版本1.2.3) \t /usr/lib/libSystem.B.dylib(兼容版本1.0.0,當前版本125.0.0) – emson 2009-12-15 15:06:37

+0

很高興它已經修復。 事實證明,我提出的命令沒有提供信息,因爲有一個libmysqlclient的靜態庫,而_mysql.so是使用「-undefined dynamic_lookup」構建的,它可以防止在編譯時檢測到缺失的符號。 MySQLdb的默認構建選項似乎是使用.dylib,所以最初可能只安裝了靜態庫。 作爲未來讀者的一個提示:在運行setup.py build之前,完全刪除build目錄通常是一個好主意。 (setup.py clean可能不夠,特別是如果ARCH標誌被改變的話)。 – 2009-12-15 17:44:17

相關問題