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

Mary-Kate Olsen
リリース: 2024-10-25 07:31:29
オリジナル
149 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!