我的mac上的python mysqldb err:库未加载:@ rpath / libmysqlclient.21.dylib

时间:2018-06-23 15:49:02

标签: python mysql mysql-python

导入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,但无法解决

2 个答案:

答案 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的更多信息。