我成功地安装了所有东西,或者我想:
但当我尝试:
import MySQLdb
我得到:
ImportError:
dlopen(/Users/aj/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.6-ix86_64.egg-tmp/_mysql.so, 2):
no suitable image found.
Did find:
/Users/aj/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.6-ix86_64.egg-tmp/_mysql.so: mach-o,
but wrong architecture
我还能错过什么?
我的系统当然也是64位版本,uname -a
给出:
Darwin ajmacbook.local 11.1.0 Darwin Kernel Version 11.1.0: Tue Jul 26 16:07:11 PDT 2011; root:xnu-1699.22.81~1/RELEASE_X86_64 x86_64
我想我已经读了很多关于这个主题的答案和谷歌搜索结果,想不出其他的尝试了。任何建议都将不胜感激。
借助@birryree的评论,我发现了这个问题。按照@birryrree在他的回答中建议的步骤来做可能会更好,但我以前确实尝试过,而且成功了:
按照建议,我做到了:
获取:
[...]: Mach-O bundle i386
所以,错误的架构。从那以后,我对mysql和python也做了同样的操作,以确保:file $(which python)
给出:以及
file $(which mysql)
:所以我卸载了mysql python包:
sudo pip uninstall mysql-python
并再次安装。但这样做,我意识到我之前的错误,而安装这个包。我第一次打字:sudo ARCHFLAGS='-arch ix86_64' python setup.py build
(然后“安装”)架构名称错误,应该是'-arch x86_64',没有“i”,所以它忽略了我的标志并安装了32位。
安装下载的64位mysql python包的正确命令(从源文件夹中):
我认为在Mac 64位上做这件事可能会有点古怪(如果你用谷歌搜索这个问题也会出现很多)。
我遇到过,你可以做几件事:
覆盖环境
您可以更改
DYLD_LIBRARY_PATH
环境变量,该变量告诉链接器在哪里查找动态库(.so文件等)。你说你还下载了64位版本的MySQL,所以无论它安装在哪里,都要更改你在这里看到的路径:在外壳中:
export DYLD_LIBRARY_PATH=/usr/local/mysql/lib/
然后运行
python
,看看是否可以import MySQLdb
。如果这样做有效,您可以通过改变shell配置文件(很可能是
.bash_profile
)使其永久化。使用自制
我真的不喜欢浪费时间去确保MySQL和Python以及所有正确的架构,然后分别安装它们。我运行^{} ,这是一种用于Mac的包管理器。如果你安装了它,你可以很容易地解决这个问题:
brew install python
brew install mysql
/usr/local/share/python/easy_install mysql-python
请注意,自制程序安装在
/usr/local
中,因此您应该在/usr/bin
和/bin
之前,将/usr/local/bin
添加到PATH
中,否则您会很困惑python
为什么不同。也可以将
/usr/local/share/python
添加到PATH
中,使其永久。借助@birryree的评论,我发现了这个问题。按照@birryrree在他的回答中建议的步骤来做可能会更好,但我以前确实尝试过,而且成功了:
按照建议,我做到了:
获取:
[...]: Mach-O bundle i386
所以,错误的架构。从那以后,我对mysql和python也做了同样的操作,以确保:file $(which python)
给出:以及
file $(which mysql)
:所以我卸载了mysql python包:
sudo pip uninstall mysql-python
并再次安装。但这样做,我意识到我以前的错误,而安装这个包。我第一次打字:sudo ARCHFLAGS='-arch ix86_64' python setup.py build
(然后“安装”)架构名称错误,应该是'-arch x86_64',没有“i”,所以它忽略了我的标志并安装了32位。
安装下载的64位mysql python包的正确命令(从源文件夹中):
非常重要!
如上所述,请确保运行的是64位版本的mysql。很容易忽略这个细节,特别是如果你已经从雪豹升级。(我当然知道)。
如果您不确定是否要删除系统上较旧版本的mysql,请参阅本文:http://johnmcostaiii.net/2011/removing-mysql-osx-lion/
相关问题 更多 >
编程相关推荐