由于相对路径不安全,未加载库:libmysqlclient.18.dylib
问题陈述:
运行 Django 的“python manage.py runserver”命令时,由于加载 MySQLdb 模块时不安全地使用“_mysql.so”中的相对路径而发生错误。错误内容如下:
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
解决方案:
出现此错误是因为 macOS El Capitan 引入了系统完整性保护,该保护限制程序使用相对引用访问共享库。 “_mysql.so”对“libmysqlclient.18.dylib”有相对引用,但现在禁止这样做。
要解决此问题,必须使用“install_name_tool”强制对“_mysql.so”进行绝对引用“ 公用事业。操作方法如下:
sudo install_name_tool -change libmysqlclient.18.dylib \ /usr/local/mysql/lib/libmysqlclient.18.dylib \ /Library/Python/2.7/site-packages/_mysql.so
此命令修改“_mysql.so”以使用“libmysqlclient.18.dylib”的绝对路径,从而解决不安全的相对路径问题。
以上是如何解决 macOS El Capitan 上 Django 中的'未加载库:libmysqlclient.18.dylib”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!