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中文网其他相关文章!