首页 > 数据库 > mysql教程 > 为什么我在 El Capitan 上使用 MySQLdb 时会收到'不安全使用相对路径”错误?

为什么我在 El Capitan 上使用 MySQLdb 时会收到'不安全使用相对路径”错误?

Mary-Kate Olsen
发布: 2024-10-24 18:56:30
原创
475 人浏览过

Why am I getting an

El Capitan 用户在 MySQLdb 中遇到“不安全使用相对路径”错误

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 操作系统。

罪魁祸首:系统完整性保护

在 OS X El Capitan (10.11) 中,Apple 引入了系统完整性保护 (SIP),它可以保护系统完整性。限制 /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
登录后复制

此命令将修改 _mysql.so 以使用 libmysqlclient.18.dylib 共享库的绝对路径,解决“不安全使用相对路径”错误。

以上是为什么我在 El Capitan 上使用 MySQLdb 时会收到'不安全使用相对路径”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板