Beim Ausführen von python manage.py runserver in Django kann der folgende Fehler auftreten:
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
Die Ursache
Dieser Fehler tritt aufgrund der Implementierung des Systemintegritätsschutzes durch Apple in OS X El Capitan (10.11) auf. Dies verhindert, dass Programme in geschützten Speicherorten wie /usr mithilfe relativer Referenzen auf gemeinsam genutzte Bibliotheken zugreifen.
In diesem Fall enthält die gemeinsam genutzte Bibliothek _mysql.so eine relative Referenz auf libmysqlclient.18.dylib.
Die Lösung
Um dieses Problem zu beheben, müssen Sie _mysql.so zwingen, einen absoluten Verweis auf libmysqlclient.18.dylib zu verwenden. Dies kann mit dem Dienstprogramm install_name_tool erreicht werden.
Schritte zur Lösung des Problems
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 aktualisiert die Referenz der gemeinsam genutzten Bibliothek in _mysql.so, um den absoluten Pfad zu libmysqlclient.18.dylib zu verwenden.
Nachdem Sie diesen Befehl ausgeführt haben, sollten Sie python manage.py runserver ohne den MySQL-Konfigurationsfehler erfolgreich ausführen können.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3