我刚刚在我的 mac os 10.6 上为 python 2.7 编译并安装了 mysqldb。我创建了一个导入的简单测试文件
import MySQLdb as mysql
首先,此命令带有红色下划线,并且信息告诉我“未解决的导入”。然后我尝试运行以下简单的python代码
import MySQLdb as mysql def main(): conn = mysql.connect( charset="utf8", use_unicode=True, host="localhost",user="root", passwd="",db="" ) if __name__ == '__main__'(): main()
执行它时,我收到以下错误消息
Traceback (most recent call last): File "/path/to/project/Python/src/cvdv/TestMySQLdb.py", line 4, in <module> import MySQLdb as mysql File "build/bdist.macosx-10.6-intel/egg/MySQLdb/__init__.py", line 19, in <module> \namespace cvdv File "build/bdist.macosx-10.6-intel/egg/_mysql.py", line 7, in <module> File "build/bdist.macosx-10.6-intel/egg/_mysql.py", line 6, in __bootstrap__ ImportError: dlopen(/Users/toom/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.6-intel.egg-tmp/_mysql.so, 2): Library not loaded: libmysqlclient.18.dylib Referenced from: /Users/toom/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.6-intel.egg-tmp/_mysql.so Reason: image not found
什么可能是我的问题的解决方案?
编辑:实际上我发现该库位于/usr/local/mysql/lib 中。所以我需要告诉我的 pydev eclipse 版本在哪里可以找到它。我在哪里设置这个?
我通过创建到库的符号链接解决了这个问题。IE
实际的库位于
/usr/local/mysql/lib
然后我创建了一个符号链接
/usr/lib
使用命令:
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
所以我有以下映射:
ls -l libmysqlclient.18.dylib lrwxr-xr-x 1 root wheel 44 16 Jul 14:01 libmysqlclient.18.dylib -> /usr/local/mysql/lib/libmysqlclient.18.dylib
就是这样。之后一切正常。
编辑:
请注意,由于 MacOS El Capitan 系统完整性保护(SIP,也称为“无根”)将阻止您在/usr/lib/. 您可以按照这些说明禁用 SIP ,但您可以创建一个链接/usr/local/lib/:
/usr/lib/
/usr/local/lib/
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/lib/libmysqlclient.18.dylib