我正在尝试安装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
设置为i386
和x86_64
。
我尝试过设置VERSIONER_PYTHON_PREFER_32_BIT
和VERSIONER_PYTHON_PREFER_64_BIT
首选项。
我正在运行Mac OS X 10.6.6
我在/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 :(得分: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
答案 1 :(得分:1)
当我遇到这个问题时,这个链接对我有帮助:
答案 2 :(得分:0)
我已经解决了我自己的问题,所以希望这对有类似问题的人有所帮助。
我相信我有一个32位的mysql安装。
我卸载了我拥有的所有mysql版本
我回去并从源代码安装了mysql 5.1,但我认为mysql 5.1 x86_64位dmg或二进制文件也可以。
我在这篇帖子中使用了这个make命令http://hivelogic.com/articles/compiling-mysql-on-snow-leopard/
我有权限问题,最后使用
工作sudo mysqld_safe --skip-grant-tables &
我从这里安装了MySQL-python 1.2.3c1