Heim  >  Artikel  >  Datenbank  >  Warum erhalte ich bei MySQLdb auf El Capitan die Fehlermeldung „Unsichere Verwendung des relativen Pfads“?

Warum erhalte ich bei MySQLdb auf El Capitan die Fehlermeldung „Unsichere Verwendung des relativen Pfads“?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-24 18:56:30395Durchsuche

Why am I getting an

El Capitan-Benutzer stößt auf Fehler „unsichere Verwendung des relativen Pfads“ mit MySQLdb

Ein Django-Benutzer ist auf einen mysteriösen Fehler gestoßen, als er versuchte, den Python-Runserver manage.py auszuführen Befehl und erhält die folgende Meldung:

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

Der Benutzer hat MySQL-Python über Pip installiert und einen vorgeschlagenen Schritt befolgt, aber das Problem besteht weiterhin. Darüber hinaus verwenden sie das Betriebssystem El Capitan Beta 3.

Der Übeltäter: System Integrity Protection

In OS X El Capitan (10.11) führte Apple den System Integrity Protection (SIP) ein hindert Programme an geschützten Orten wie /usr daran, mithilfe relativer Referenzen auf gemeinsam genutzte Bibliotheken zuzugreifen. In diesem Fall enthält die gemeinsam genutzte Bibliothek _mysql.so einen relativen Verweis auf die gemeinsam genutzte Bibliothek libmysqlclient.18.dylib.

Lösung: Erzwingen einer absoluten Referenz

Während eines zukünftigen Updates von _mysql.so Dieses Problem kann möglicherweise behoben werden. Eine vorübergehende Lösung besteht darin, die Bibliothek mithilfe des Dienstprogramms install_name_tool zur Verwendung einer absoluten Referenz zu zwingen.

Angenommen, libmysqlclient.18.dylib befindet sich in /usr/local/mysql/lib/, führen Sie Folgendes aus Befehl:

sudo install_name_tool -change libmysqlclient.18.dylib \
  /usr/local/mysql/lib/libmysqlclient.18.dylib \
  /Library/Python/2.7/site-packages/_mysql.so

Dieser Befehl ändert _mysql.so so, dass der absolute Pfad zur gemeinsam genutzten Bibliothek libmysqlclient.18.dylib verwendet wird, wodurch der Fehler „unsichere Verwendung des relativen Pfads“ behoben wird.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich bei MySQLdb auf El Capitan die Fehlermeldung „Unsichere Verwendung des relativen Pfads“?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn