「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > macOS 上の Django で「ImproperlyConfigured: MySQLdb モジュールのロード中にエラーが発生しました」を修正する方法?

macOS 上の Django で「ImproperlyConfigured: MySQLdb モジュールのロード中にエラーが発生しました」を修正する方法?

2024 年 11 月 9 日に公開
ブラウズ:586

How to Fix \

MySQL の不適切な構成: 相対パスの問題

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 ユーティリティを使用して実行できます。

問題を解決する手順

  1. libmysqlclient.18.dylib が /usr/local/ にあることを確認します。 mysql/lib/.
  2. で次のコマンドを実行します。ターミナル:
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