ホームページ >データベース >mysql チュートリアル >El Capitan の MySQLdb で「相対パスの安全でない使用」エラーが発生するのはなぜですか?

El Capitan の MySQLdb で「相対パスの安全でない使用」エラーが発生するのはなぜですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-24 18:56:30476ブラウズ

Why am I getting an

El Capitan ユーザーが MySQLdb で「安全でない相対パスの使用」エラーに遭遇しました

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

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