安全でない相対パスのため、ライブラリがロードされていません: 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」に絶対参照を強制する必要があります。 " ユーティリティ。方法は次のとおりです。
sudo install_name_tool -change libmysqlclient.18.dylib \ /usr/local/mysql/lib/libmysqlclient.18.dylib \ /Library/Python/2.7/site-packages/_mysql.so
このコマンドは、「libmysqlclient.18.dylib」への絶対パスを使用するように「_mysql.so」を変更し、安全でない相対パスの問題を解決します。
以上がmacOS El Capitan 上の Django で「ライブラリが読み込まれていません: libmysqlclient.18.dylib」エラーを解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。