mysql-python安装问题(在mac os x lion上)
我安装了所有东西,或者我想:
- MySQL 5.5 for x86_64。
- Python 2.7,x86_64。
- mysql-python 1.2.3,x86_64。
但是当我尝试:
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 
我想我已经阅读了大部分的答案和谷歌在这个问题上的结果,想不出别的办法。 任何build议,将不胜感激。
我认为在Mac 64位上可能会出现一些小问题(如果你是谷歌,这个问题也会出现很多)。
我碰到了,有几件事你可以做:
覆盖环境
 您可以更改DYLD_LIBRARY_PATH环境variables,该variables告诉链接程序在哪里查找dynamic库(.so文件等)。 你说你还下载了64位版本的MySQL,所以在安装它的地方,改变你在这里看到的path: 
在一个shell中:
 export DYLD_LIBRARY_PATH=/usr/local/mysql/lib/ 
 然后运行python ,看看你是否可以import MySQLdb 。 
 如果这样做,你可以通过改变你的shellconfiguration文件( .bash_profile ,很可能)来使其成为永久的。 
使用自制软件
 我真的不喜欢搞清楚MySQL和Python以及所有正确的体系结构并分别安装它们。 我运行homebrew ,这是一种Mac的软件包pipe理器。 如果你安装了,你可以很容易地处理这个问题: 
-  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的评论的帮助下,我发现了这个问题。 我可能会更好地遵循@birryree在他的答案中提出的程序,但是我之前尝试过,它的工作原理:
正如所build议的,我做到了:
 file /Users/aj/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.6-ix86_64.egg-tmp/_mysql.so 
 得到: [...]: Mach-O bundle i386所以,错误的架构。 从那里我做了相同的MySQL和Python只是为了确保: file $(which python)给: 
 /Library/Frameworks/Python.framework/Versions/2.7/bin/python: Mach-O universal binary with 2 architectures /Library/Frameworks/Python.framework/Versions/2.7/bin/python (for architecture i386): Mach-O executable i386 /Library/Frameworks/Python.framework/Versions/2.7/bin/python (for architecture x86_64): Mach-O 64-bit executable x86_64 
 和file $(which mysql) : 
 /usr/local/mysql/bin/mysql: Mach-O 64-bit executable x86_64 
 所以我卸载了mysql-python软件包: sudo pip uninstall mysql-python并重新安装。 但是这样做,我意识到我安装这个软件包时以前的错误。 我第一次input: 
  sudo ARCHFLAGS='-arch ix86_64' python setup.py build (and“install” sudo ARCHFLAGS='-arch ix86_64' python setup.py build ) 
架构名称是错误的,应该是'-arch x86_64',不是'我',所以它只是忽略我的国旗,并安装了32位。
正确的命令安装下载的64位(从源文件夹)的mysql-python包:
 sudo ARCHFLAGS='-arch x86_64' python setup.py build sudo ARCHFLAGS='-arch x86_64' python setup.py install 
很重要!
如上所述,请确保您运行的是64位版本的mysql。 如果你已经从雪豹升级,很容易忽略这个细节。 (我当然是)。
如果你不确定在你的系统上删除旧版本的mysql,请参考这篇文章: http : //johnmcostaiii.net/2011/removing-mysql-osx-lion/
我有同样的问题,并修复64位问题(这也是抱怨libmysqlclient.18.dylib在哪里)与MySQLdb很多头痛。
我认为是时候切换到官方的Mysql Python连接器了?
 sudo pip install mysql-connector-python 
或者从http://dev.mysql.com/downloads/connector/python/下载它;
文档: http : //dev.mysql.com/doc/refman/5.5/en/connector-python.htm
它易于使用,并且与PEP 249(Python DB API版本2.0)兼容。
还要确保你也运行Python 64位 。 我运行mysql 64位和Python 32位,所以得到了'但错误的体系结构'的错误