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.
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.
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!