如何解决 macOS El Capitan 上 Django 中的'未加载库:libmysqlclient.18.dylib”错误?

Susan Sarandon
发布: 2024-10-25 03:44:02
原创
495 人浏览过

How to Resolve

由于相对路径不安全,未加载库: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”进行绝对引用“ 公用事业。操作方法如下:

  1. 确保“libmysqlclient.18.dylib”位于“/usr/local/mysql/lib/”中。
  2. 在终端中运行以下命令:
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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!