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
このコマンドは、libmysqlclient.18.dylib.
への絶対パスを使用するように _mysql.so 内の共有ライブラリ参照を更新します。このコマンドを実行すると、MySQL 構成エラーが発生せずに python manage.py runserver を正常に実行できるようになります。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3