在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 設定錯誤。
以上是如何修復 macOS 上 Django 中的「配置不正確:載入 MySQLdb 模組時出錯」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!