ホームページ  >  記事  >  データベース  >  macOS 上の Django で「ImproperlyConfigured: MySQLdb モジュールのロード中にエラーが発生しました」を修正する方法?

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

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-25 07:31:29150ブラウズ

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 への絶対パスを使用するように _mysql.so 内の共有ライブラリ参照を更新します。 18.dylib.

このコマンドを実行すると、MySQL 構成エラーが発生せずに python manage.py runserver を正常に実行できるようになります。

以上がmacOS 上の Django で「ImproperlyConfigured: MySQLdb モジュールのロード中にエラーが発生しました」を修正する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。