2011-07-20 89 views
1

我正在嘗試安裝MySQLdb python,並且因爲遇到體系結構錯誤而無法正常工作。安裝MySQLdb Python體系結構錯誤

>>> import MySQLdb 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "build/bdist.macosx-10.6-x86_64/egg/MySQLdb/__init__.py", line 19, in <module> 
    File "build/bdist.macosx-10.6-x86_64/egg/_mysql.py", line 7, in <module> 
    File "build/bdist.macosx-10.6-x86_64/egg/_mysql.py", line 6, in __bootstrap__ 
ImportError: dlopen(/Users/jkeesh/.python-eggs/MySQL_python-1.2.3-py2.6-macosx-10.6-x86_64.egg-tmp/_mysql.so, 2): no suitable image found. Did find: 
    /Users/jkeesh/.python-eggs/MySQL_python-1.2.3-py2.6-macosx-10.6-x86_64.egg-tmp/_mysql.so: mach-o, but wrong architecture 

這是一個常見的問題,我看了很多很多來源,包括:

Python MySQL wrong architecture error

http://www.mechanicalgirl.com/view/installing-django-with-mysql-on-mac-os-x/

Django + MySQL on Mac OS 10.6.2 Snow Leopard

Installing MySQLdb on Mac OS X

和許多其他鏈接。

看來問題是32位64位不匹配,但我不確定正確的組合是什麼,或者不匹配是什麼。

我已經從pip,從Mac端口安裝,並從源代碼構建。我試圖將ARCHFLAGS設置爲i386x86_64

我試過設置VERSIONER_PYTHON_PREFER_32_BITVERSIONER_PYTHON_PREFER_64_BIT首選項。

我運行Mac OS X 10.6.6

我有MySQL的安裝在/usr/local/mysql

$ file $(which ./mysql) 
    ./mysql: Mach-O executable i386 

我有mysql版本5.5.12

我已經64 bit Python 2.6.6.

我的系統架構:

>>> platform.platform() 
'Darwin-10.6.0-i386-64bit' 

$ file $(which python) 
    /opt/local/bin/python: Mach-O 64-bit executable x86_64 

如果有任何鏈接,你可以指向我或建議嘗試我會很感激。無論我嘗試什麼,我都處於死路一條,並得到相同的「錯誤架構」錯誤。

回答

0

我已經解決了自己的問題,所以希望這可以幫助人們與類似的問題。

我相信我有一個32位的MySQL安裝。

我卸載的MySQL,我有

我回去,並從源頭上安裝的MySQL 5.1的所有版本,但我認爲一個MySQL 5.1 x86_64的位傷害或二進制也將工作。

我這個職位http://hivelogic.com/articles/compiling-mysql-on-snow-leopard/

我有權限問題用這個make命令,終於得到了它的工作使用

sudo mysqld_safe --skip-grant-tables & 

我從這裏

http://pypi.python.org/pypi/MySQL-python/1.2.3c1

安裝了MySQL-python的1.2.3c1
2

嘗試將其添加到您的.bashrc.bash_profile

PATH="/usr/local/mysql/bin:${PATH}" 
export PATH 
export DYLD_LIBRARY_PATH=/usr/local/mysql/lib/ 
export VERSIONER_PYTHON_PREFER_64_BIT=no 
export VERSIONER_PYTHON_PREFER_32_BIT=yes 
+0

我相信我用VERSIONER_PYTHON_PREFER試過這個選項,但那不是問題。 – jkeesh