导入MySQLdb
'Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "build/bdist.macosx-10.13-intel/egg/MySQLdb/__init__.py", line 19, in <module>
File "build/bdist.macosx-10.13-intel/egg/_mysql.py", line 7, in <module>
File "build/bdist.macosx-10.13-intel/egg/_mysql.py", line 6, in __bootstrap__
ImportError: dlopen(/Users/simon/.python-eggs/MySQL_python-1.2.5-py2.7-macosx-10.13-intel.egg-tmp/_mysql.so, 2): Library not loaded: @rpath/libmysqlclient.21.dylib
Referenced from: /Users/simon/.python-eggs/MySQL_python-1.2.5-py2.7-macosx-10.13-intel.egg-tmp/_mysql.so
Reason: image not found
我尝试构建并安装mysql-python和ln -s /usr/local/mysql/lib/libmysqlclient.18.dyli
,但无法解决
答案 0 :(得分:1)
因此,据我所知,@ rpath尝试解析为/ usr / lib,无法将其写入。我通过浏览this site解决了这一问题。它很多是中文的,但是我得到的是命令sudo install_name_tool -change @rpath/libmysqlclient.21.dylib /usr/local/mysql/lib/libmysqlclient.21.dylib /Users/[username]/.pyenv/versions/career/lib/python2.7/site-packages/_mysql.so
答案 1 :(得分:0)
我做了与Sam相似的事情,并且能够使它起作用。
我只是制作了libmysqlclient.21.dylib
文件的一个副本,该文件位于/usr/local/mysql/lib
中最新安装的MySQL 8.0.13中,并将该副本以相同的名称移动到{{ 1}}。
您将需要暂时在Mac上禁用安全完整性保护,但要这样做,因为您将没有权限或无法更改/usr/lib
中的任何权限,而无需禁用它。您可以通过启动进入恢复系统,在顶部的菜单上单击实用程序,然后打开终端并在终端中输入/usr/lib
来执行此操作。只记得在完成此操作后重新打开安全完整性保护!与上述过程的唯一区别是您改为运行csrutil disable
。
您可以找到有关如何禁用和启用macOS的安全完整性保护here的更多信息。