Zunächst einmal habe ich das schon gesehen:
Das Problem
Ich versuche, Django in einem Google App Engine-Projekt zu verwenden. Ich konnte jedoch nicht starten, da der Server aus folgenden Gründen nicht ordnungsgemäß gestartet werden kann:
ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdb
Ich habe einige Nachforschungen angestellt und alles deutete darauf hin, dass ich MySQL-Python installieren musste, da es anscheinend nicht auf meinem System ist. Ich habe tatsächlich versucht, es zu deinstallieren und habe Folgendes erhalten:
Cannot uninstall requirement mysql-python, not installed
Wann immer ich tatsächlich versuche, über zu installieren:
sudo pip install MySQL-python
Ich erhalte eine Fehlermeldung:
raise EnvironmentError("%s not found" % (mysql_config.path,))
EnvironmentError: mysql_config not found
Ich habe bereits versucht zu laufen:
export PATH=$PATH:/usr/local/mysql/bin
aber das schien nicht zu helfen, da ich den Installationsbefehl erneut ausführte und er immer noch fehlschlug.
Irgendwelche Ideen?
Bitte beachten Sie, dass ich nicht in einer virtuellen Umgebung bin.
EnvironmentError
und weitere nützliche Debug-Informationen drucken, wie zos.getcwd()
. Sie können auch ein hinzufügenpdb.set_trace()
und Dinge herausfinden.Antworten:
Ok, zunächst möchte ich überprüfen, ob ich auf derselben Seite wie Sie bin:
brew install mysql
export PATH=$PATH:/usr/local/mysql/bin
pip install MySQL-Python
(oderpip3 install mysqlclient
wenn Sie Python 3 verwenden)Wenn Sie alle diese Schritte in derselben Reihenfolge ausgeführt haben und dennoch ein Fehler aufgetreten ist, lesen Sie bis zum Ende weiter. Wenn Sie diese genauen Schritte jedoch nicht befolgt haben, versuchen Sie es von Anfang an.
Sie haben also die Schritte befolgt und erhalten immer noch einen Fehler. Nun, es gibt einige Dinge, die Sie versuchen könnten:
Versuchen Sie,
which mysql_config
vor Bash davonzulaufen. Es wird wahrscheinlich nicht gefunden. Deshalb findet der Build es auch nicht. Versuchen Sie zu rennenlocate mysql_config
und sehen Sie, ob etwas zurückkommt. Der Pfad zu dieser Binärdatei muss sich entweder in der Umgebungsvariablen $ PATH Ihrer Shell befinden oder explizit in der Datei setup.py für das Modul, vorausgesetzt, es wird an einer bestimmten Stelle nach dieser Datei gesucht.Versuchen Sie, anstatt MySQL-Python zu verwenden, 'mysql-connector-python' zu verwenden
pip install mysql-connector-python
. Es kann mit installiert werden . Weitere Informationen hierzu finden Sie hier und hier .Suchen Sie manuell den Speicherort von 'mysql / bin', 'mysql_config' und 'MySQL-Python' und fügen Sie alle diese zur Umgebungsvariablen $ PATH hinzu.
Wenn alle oben genannten Schritte fehlschlagen, können Sie versuchen, 'mysql' mit MacPorts zu installieren. In diesem Fall würde die Datei 'mysql_config' tatsächlich 'mysql_config5' heißen. In diesem Fall müssten Sie dies nach der Installation tun :
export PATH=$PATH:/opt/local/lib/mysql5/bin
. Weitere Details finden Sie hier .Hinweis 1: Ich habe einige Leute gesehen, die sagten, dass die Installation
python-dev
undlibmysqlclient-dev
auch geholfen haben, aber ich weiß nicht, ob diese Pakete unter Mac OS verfügbar sind.Hinweis 2: Stellen Sie außerdem sicher, dass Sie versuchen, die Befehle als root auszuführen.
Ich habe meine Antworten von (außer meinem Gehirn) diesen Orten erhalten (vielleicht könnten Sie sie sich ansehen, um zu sehen, ob es helfen würde): 1 , 2 , 3 , 4 .
Ich hoffte, ich hätte geholfen und würde mich freuen zu wissen, ob dies funktioniert oder nicht. Viel Glück.
quelle
brew install mysql
behoben. Auch dieser Befehlwhich mysql-config
hat bei mir nicht funktioniert, aberwhich mysql_config
funktioniert..bash_profile
Datei hinzufügen :export DYLD_LIBRARY_PATH=/usr/local/Cellar/mysql/5.7.9/lib/
export PATH=$PATH:/usr/local/Cellar/mysql/5.7.20/bin
Ich hatte dieses Problem für immer behoben - 3 Stunden 17 Minuten. Was mich besonders ärgerte, war, dass ich SQL bereits durch vorherige Uni-Arbeiten auf meinem System installiert hatte, aber pip / pip3 erkannte es nicht. Diese und viele andere Themen, nach denen ich im Internet gesucht habe, waren hilfreich, um das Problem zu lösen, haben aber die Dinge nicht wirklich gelöst.
ANTWORTEN
Pip sucht im Homebrew-Verzeichnis nach MySQL-Binärdateien, die sich relativ zu Macintosh HD @ befinden.
Daher habe ich festgestellt, dass Sie hierfür einige Änderungen vornehmen müssen
Schritt 1: Laden Sie MySql herunter, falls dies noch nicht geschehen ist. Https://dev.mysql.com/downloads/
Schritt 2: Suchen Sie es relativ zu Macintosh HD und CD
Schritt 3: Sobald Sie dort das Terminal geöffnet haben und einen Texteditor Ihrer Wahl verwenden - ich bin selbst ein Neovim-Typ, also habe ich getippt (kommt nicht automatisch mit Mac ... eine andere Geschichte für einen anderen Tag)
Schritt 4: Sie sehen in ca. Zeile 112
Ändern
* Sie werden feststellen, dass diese Datei schreibgeschützt ist, wenn Sie vim oder neovim verwenden
Schritt 5: Gehen Sie zum Ausgangsverzeichnis und bearbeiten Sie die Datei .bash_profile
Dann
und hinzufügen
in die Datei dann speichern
Schritt 6: Suchen Sie relativ zu Macintosh HD Pfade und fügen Sie sie hinzu
dann
und hinzufügen
* Sie werden erneut feststellen, dass diese Datei schreibgeschützt ist, wenn Sie vim oder neovim verwenden
dann
Aktualisieren Sie dann das Terminal mit Ihren Änderungen, indem Sie es ausführen
Schließlich
Und Viola. Denken Sie daran, es ist eine Stimmung.
quelle
libs
Inneresmysql_config
war bereits wie im Abschnitt "Wechseln zu" beschrieben. Das Hinzufügen des Pfads zuprivate/etc
, um die globale Installation zu ermöglichenmysqlclient
, schlug jedoch zuvor fehl.Wenn Sie kein vollständiges MySQL installieren möchten, können wir dies beheben, indem Sie einfach MySQL-Client installieren.
brew install mysqlclient
Sobald cmd abgeschlossen ist, werden Sie aufgefordert, die folgende Zeile hinzuzufügen~/.bash_profile
:echo 'export PATH="/usr/local/opt/mysql-client/bin:$PATH"' >> ~/.bash_profile
Terminal schließen und neues Terminal starten und fortfahren
pip install mysqlclient
quelle
Ich verwende Python 3.6 unter MacOS Catalina. Mein Problem war, dass ich versucht habe zu installieren
mysqlclient==1.4.2.post1
und es immer wieder mysql_config nicht gefunden Fehler auslöst.Dies sind die Schritte, die ich unternommen habe, um das Problem zu lösen.
brew unlink mysql
) -brew install mysql-connector-c
brew info openssl
- Auf diese Weise erhalten Sie weitere Informationen darüber, was Sie tun müssen, um openssl in PATH einzufügenecho 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.bash_profile
export LDFLAGS="-L/usr/local/opt/openssl/lib"
export CPPFLAGS="-I/usr/local/opt/openssl/include"
quelle
Dies passiert auch, als ich mysqlclient installiert habe.
Wie user3429036 sagte,
quelle
Diese Antwort richtet sich an MacOS-Benutzer, die nicht
brew
vom offiziellen, sondern vom offiziellen Benutzer installiert haben.dmg/.pkg
. Dieses Installationsprogramm kann Ihre nicht bearbeitenPATH
, was dazu führt, dass Dinge aus der Box herausbrechen:mysql
,mysqladmin
,mysql_config
kann, etc nicht gefunden werden, und als Ergebnis:mysqlclient
Was Sie tun müssen, ist das Anhängen des MySQL-
bin
Ordners (normalerweise/usr/local/mysql/bin
in Ihrem,PATH
indem Sie diese Zeile in Ihre~/.bash_profile
Datei einfügen:export PATH="/usr/local/mysql/bin/:$PATH"
Sie sollten dann Ihre neu laden,
~/.bash_profile
damit die Änderung in Ihrer aktuellen Terminalsitzung wirksam wird:source ~/.bash_profile
Vor der Installation
mysqlclient
müssen Sie jedoch die XcodeBuild-Lizenz akzeptieren:sudo xcodebuild -license
Befolgen Sie die Anweisungen, um Ihre Familie abzumelden. Danach sollten Sie die Installation
mysqlclient
ohne Probleme durchführen können:pip install mysqlclient
Nach der Installation müssen Sie noch einen Schritt tun, um einen Laufzeitfehler zu beheben, der mit MySQL geliefert wird ( Dynamische Bibliothek
libmysqlclient.dylib
nicht gefunden ), indem Sie diese Zeile zu Ihrem Pfad für dynamische Systembibliotheken hinzufügen:export DYLD_LIBRARY_PATH=/usr/local/mysql/lib/:$DYLD_LIBRARY_PATH
quelle
sudo lsof -i :3306
, um die PID des aktiven MySQL-Prozesses anzuzeigen, und diese dann ausgeführtsudo -P <pid>
habe, um die geöffneten Dateien anzuzeigen. Dies kam mit,/usr/local/mysql-8.0.18-macos10.14-x86_64/bin
was ich hinzugefügt habe$PATH
und voila !Wenn Sie mysql mit Homebrew durch Angabe einer Version installiert haben, ist mysql_config hier vorhanden. - /usr/local/Cellar/[email protected]/5.6.47/bin
Sie finden den Pfad des SQL-Bin mithilfe des Befehls ls im Verzeichnis / usr / local /
Fügen Sie den Pfad wie folgt zum Bash-Profil hinzu.
quelle
Das Problem in meinem Fall war, dass ich den Befehl in einer virtuellen Python-Umgebung ausführte und nicht den Pfad dazu hatte / usr / local / mysql / bin hatte, obwohl ich ihn in die Datei .bash_profile eingefügt habe. Das Exportieren des Pfads in die virtuelle Umgebung hat für mich funktioniert.
Zu Ihrer Information befindet sich sql_config im bin-Verzeichnis.
quelle
Die Installation von Brew oder Apt-Get ist für mich ebenfalls nicht einfach. Deshalb habe ich MySQL heruntergeladen über: https://dev.mysql.com/downloads/connector/python/ und installiert. So kann ich mysql_config in diesem Verzeichnis finden: / usr / local / mysql / bin
Der nächste Schritt ist:
quelle