一尘不染

MySQL配置不正确原因:不安全地使用相对路径

django

我正在使用Django,并且在运行时python manage.py runserver收到以下错误:

ImproperlyConfigured: Error loading MySQLdb module: dlopen(/Library/Python/2.7/site-packages/_mysql.so, 2): Library not loaded: libmysqlclient.18.dylib
  Referenced from: /Library/Python/2.7/site-packages/_mysql.so
  Reason: unsafe use of relative rpath libmysqlclient.18.dylib in /Library/Python/2.7/site-packages/_mysql.so with restricted binary

我不确定如何解决此问题。我已经通过pip安装了MySQL-python。我早些时候遵循了这一步骤。

我还要指出的是El Capitan Beta 3。


阅读 520

收藏
2020-03-29

共1个答案

一尘不染

在OS X El Capitan(10.11)中,Apple添加了系统完整性保护。

这样可以防止受保护位置中的程序(例如)/usr调用使用相对于另一个共享库的相对引用的共享库。在这种情况下_mysql.so,它包含对共享库的相对引用libmysqlclient.18.dylib

将来,共享库_mysql.so可能会更新。在此之前,你可以通过install_name_tool实用程序强制其使用绝对引用。

假设它libmysqlclient.18.dylib在/ usr / local / mysql / lib /中,然后运行命令:

sudo install_name_tool -change libmysqlclient.18.dylib \
  /usr/local/mysql/lib/libmysqlclient.18.dylib \
  /Library/Python/2.7/site-packages/_mysql.so
2020-03-29