Django ユーザーが python manage.py 実行サーバーを実行しようとしたときに不可解なエラーが発生しましたコマンドを実行すると、次のメッセージが表示されます:
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/ にあると仮定して、次のコマンドを実行します。 command:
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 を変更し、「相対パスの安全でない使用」エラーを解決します。
以上がEl Capitan の MySQLdb で「相対パスの安全でない使用」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。