我下载了MySQL 5.5.8 (http://dev.mysql.com/downloads/mysql/),并按照安装说明安装了 MySQLdb python 插件。(http://sourceforge.net/projects/mysql-python/)
但是当我尝试在Python终端中导入MySQLdb时,出现以下错误:
Safira:~ yanigisawa$ python --version
Python 2.6.1
Safira:~ yanigisawa$ 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/yanigisawa/.python-eggs/MySQL_python-1.2.3-py2.6-macosx-10.6-universal.egg-tmp/_mysql.so, 2): Library not loaded: libmysqlclient.16.dylib
Referenced from: /Users/yanigisawa/.python-eggs/MySQL_python-1.2.3-py2.6-macosx-10.6-universal.egg-tmp/_mysql.so
Reason: image not found
Safira:~ yanigisawa$
我在stackoverflow上找到了问题4559699,并按照那里的指示进行操作:
Safira:~ yanigisawa$ echo $DYLD_LIBRARY_PATH
/usr/local/mysql/lib
Safira:~ yanigisawa$ ls -l /usr/local/mysql/lib
total 363224
-rwxr-xr-x 1 root wheel 3787328 Jan 18 19:41 libmysqlclient.16.dylib
-rw-r--r-- 1 root wheel 10035336 Dec 3 13:26 libmysqlclient.a
lrwxr-xr-x 1 root wheel 23 Jan 14 22:01 libmysqlclient.dylib -> libmysqlclient.16.dylib
lrwxr-xr-x 1 root wheel 20 Jan 14 22:01 libmysqlclient_r.16.dylib -> libmysqlclient.dylib
lrwxr-xr-x 1 root wheel 16 Jan 14 22:01 libmysqlclient_r.a -> libmysqlclient.a
lrwxr-xr-x 1 root wheel 20 Jan 14 22:01 libmysqlclient_r.dylib -> libmysqlclient.dylib
-rw-r--r-- 1 root wheel 88033760 Dec 3 13:22 libmysqld-debug.a
-rw-r--r-- 1 root wheel 84075304 Dec 3 13:26 libmysqld.a
-rw-r--r-- 1 root wheel 8472 Dec 3 13:26 libmysqlservices.a
drwxr-xr-x 13 root wheel 442 Dec 3 13:53 plugin
Safira:~ yanigisawa$ md5 /usr/local/mysql/lib/libmysqlclient.16.dylib
MD5 (/usr/local/mysql/lib/libmysqlclient.16.dylib) = b8a78a93183720021b9dbe9ddad57111
Safira:~ yanigisawa$
在清理了所有的Python egg文件并重新构建后,我仍然遇到了相同的错误。然后我发现MySQL 5.5.8中的bug 59006(http://bugs.mysql.com/bug.php?id=59006)影响了Mac 10.6。我尝试了那里列出的解决方法,清理了egg并重新构建,但我仍然遇到了这个错误。
是否有另一个针对此问题的特定于Python的解决方法?我还遗漏了其他东西吗?
编辑:添加来自otool命令的输出:
Safira:~ yanigisawa$ otool -L /Users/yanigisawa/.python-eggs/MySQL_python-1.2.3-py2.6-macosx-10.6-universal.egg-tmp/_mysql.so
/Users/yanigisawa/.python-eggs/MySQL_python-1.2.3-py2.6-macosx-10.6-universal.egg-tmp/_mysql.so:
libmysqlclient.16.dylib (compatibility version 16.0.0, current version 16.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.1)
Safira:~ yanigisawa$ otool -DX /usr/local/mysql/lib/libmysqlclient.16.dylib
/usr/local/mysql/lib/libmysqlclient.16.dylib
Safira:~ yanigisawa$