Bibliothek nicht geladen: libmysqlclient.18.dylib aufgrund eines unsicheren relativen Pfads
Problembeschreibung:
Beim Ausführen des Django-Befehls „python manage.py runserver“ tritt ein Fehler aufgrund einer unsicheren Verwendung eines relativen Pfads in „_mysql.so“ beim Laden des MySQLdb-Moduls auf. Der Fehler lautet:
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
Lösung:
Dieser Fehler tritt auf, weil macOS El Capitan den Systemintegritätsschutz einführt, der Programme daran hindert, mithilfe relativer Referenzen auf gemeinsam genutzte Bibliotheken zuzugreifen. „_mysql.so“ hat einen relativen Verweis auf „libmysqlclient.18.dylib“, aber das ist jetzt verboten.
Um dieses Problem zu beheben, muss ein absoluter Verweis für „_mysql.so“ mit dem „install_name_tool“ erzwungen werden " Dienstprogramm. So geht's:
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“, um den absoluten Pfad zu „libmysqlclient.18.dylib“ zu verwenden, wodurch das unsichere relative Pfadproblem behoben wird.
Das obige ist der detaillierte Inhalt vonWie behebe ich den Fehler „Bibliothek nicht geladen: libmysqlclient.18.dylib' in Django unter macOS El Capitan?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!