在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
原因
出现此错误的原因是 Apple 在 OS X El Capitan (10.11) 中实施了系统完整性保护。这可以防止 /usr 等受保护位置中的程序使用相对引用访问共享库。
在这种情况下,共享库 _mysql.so 包含对 libmysqlclient.18.dylib 的相对引用。
解决方案
要解决此问题,您需要强制 _mysql.so 使用对 libmysqlclient.18.dylib 的绝对引用。这可以使用 install_name_tool 实用程序来实现。
解决问题的步骤
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 的绝对路径。
运行此命令后,您应该能够成功运行 python manage.py runserver,并且不会出现 MySQL 配置错误。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3