在Mac OS X上导入Python的MySQLdb出现错误

2 投票
1 回答
3071 浏览
提问于 2025-04-16 16:03

我花了很长时间在MySQL的博客和StackOverflow的问题上,试图搞清楚怎么在我的Mac OS 10.6.7上安装MySQL服务器和Python的MySQLdb。我觉得我通过MacPorts安装了MySQL服务器(这花了我很久),但是我在Python中却无法导入MySQLdb(从这里下载的)。

我遇到的错误是:

import MySQLdb
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Library/Frameworks/EPD64.framework/Versions/6.3/lib/python2.6/site-packages/MySQL_python-1.2.3-py2.6-macosx-10.5-x86_64.egg/MySQLdb/__init__.py", line 19, in <module>
import _mysql
ImportError: dlopen(/Library/Frameworks/EPD64.framework/Versions/6.3/lib/python2.6/site-packages/MySQL_python-1.2.3-py2.6-macosx-10.5-x86_64.egg/_mysql.so, 2): Library not loaded: libmysqlclient.18.dylib
Referenced from: /Library/Frameworks/EPD64.framework/Versions/6.3/lib/python2.6/site-packages/MySQL_python-1.2.3-py2.6-macosx-10.5-x86_64.egg/_mysql.so
Reason: image not found

我按照这个问题的说明,清理并重新安装了MySQLdb的安装。按照步骤操作一切都很顺利,但最后还是出现了同样的错误。

我也不明白为什么它会提到EPD64.framework这个目录——实际上模块的文件夹和内容是在/Library/Frameworks/Python.Framework/.../site-packages里。难道是MacPorts搞错了什么?

(我还额外修改了一步,把site.cfg中的mysql_config路径改成了/user/local/mysql/bin/mysql_config)

我也试着按照这个问题的建议去做,但根本找不到/User/$User/.python-eggs这个目录,所以不知道该怎么处理。

有什么想法吗?

1 个回答

1

你问题中的第二个链接其实有答案,但里面夹杂了很多不必要的信息...

你只需要确保你有这个文件:/usr/local/mysql/bin/mysql_config

然后在安装MySQLdb的时候,只需要把 setup_posix.py 文件里的 mysql_config.path 改成:

mysql_config.path = "/usr/local/mysql/bin/mysql_config"

试试这样做就行了,不用去做他们建议的符号链接或者清理那些蛋包等操作。

撰写回答