it-swarm.com.de

Mac OS X - EnvironmentError: mysql_config wurde nicht gefunden

Zunächst einmal, ja, ich habe das schon gesehen: 

pip install mysql-python schlägt mit EnvironmentError fehl: mysql_config nicht gefunden

Das Problem

Ich versuche, Django in einem Google App Engine-Projekt zu verwenden. Ich konnte jedoch nicht loslegen, da der Server nicht ordnungsgemäß startet, und zwar aus folgenden Gründen: 

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 in meinem System vorhanden ist. Ich habe tatsächlich versucht, es zu deinstallieren und habe folgendes bekommen: 

Cannot uninstall requirement mysql-python, not installed

Wann immer ich versuche zu installieren über: 

Sudo pip install MySQL-python

Ich bekomme eine Fehlermeldung 

raise EnvironmentError("%s not found" % (mysql_config.path,))
EnvironmentError: mysql_config not found

Ich habe schon versucht zu laufen: 

export PATH=$PATH:/usr/local/mysql/bin

das schien aber nicht zu helfen, da ich den Installationsbefehl erneut ausgeführt habe und trotzdem fehlgeschlagen ist. 

Irgendwelche Ideen? 

Bitte beachte, dass ich mich nicht auf eine Vertikale stütze. 

87
daniel_c05

Ok, zunächst einmal, lassen Sie mich überprüfen, ob ich auf derselben Seite bin wie Sie:

  • Sie haben Python installiert
  • Sie haben brew install mysql
  • Sie haben export PATH=$PATH:/usr/local/mysql/bin
  • Und schließlich haben Sie pip install MySQL-Python (oder pip3 install mysqlclient, wenn Sie Python 3 verwenden)

Wenn Sie alle diese Schritte in der gleichen Reihenfolge ausgeführt haben und immer noch ein Fehler aufgetreten ist, lesen Sie bis zum Ende durch. Wenn Sie jedoch nicht genau diese Schritte ausgeführt haben, versuchen Sie sie von Anfang an.

Sie haben also die Schritte befolgt und erhalten immer noch einen Fehler. Nun, es gibt ein paar Dinge, die Sie versuchen könnten:

  1. Versuchen Sie, which mysql_config von bash aus auszuführen. Es wird wahrscheinlich nicht gefunden. Deshalb findet der Build ihn auch nicht. Versuchen Sie es mit locate mysql_config und sehen Sie, ob etwas zurückkommt. Der Pfad zu dieser Binärdatei muss entweder in der Umgebungsvariablen $ PATH der Shell enthalten sein oder muss explizit in der Datei setup.py für das Modul enthalten sein, vorausgesetzt, es sucht an einer bestimmten Stelle nach dieser Datei. 

  2. Anstatt MySQL-Python zu verwenden, versuchen Sie es mit 'mysql-connector-python', es kann mit pip install mysql-connector-python installiert werden. Weitere Informationen hierzu finden Sie hier und hier .

  3. Suchen Sie den Ort von 'mysql/bin', 'mysql_config' und 'MySQL-Python' manuell und fügen Sie alle der Umgebungsvariable $ PATH hinzu.

  4. Wenn alle obigen 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üssen 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 von python-dev und libmysqlclient-dev auch geholfen hat, allerdings weiß ich nicht, ob diese Pakete unter Mac OS verfügbar sind.

Note2: Stellen Sie außerdem sicher, dass Sie die Befehle als root ausführen.

Ich erhielt meine Antworten (neben meinem Gehirn) an diesen Orten (vielleicht könnten Sie sie sich ansehen, um zu sehen, ob es helfen würde): 1 , 2 , 3 , 4 .

Ich hoffte, dass ich geholfen habe, und würde gerne wissen, ob dies funktioniert hat oder nicht. Viel Glück.

275
user3429036

Ich hatte dieses Problem schon seit drei Stunden debugiert - 3 Stunden und 17 Minuten. Was mich besonders geärgert hat, war, dass ich bereits in früheren Uni-Arbeitsgängen SQL installiert hatte, aber Pip/Pip3 es nicht erkannte. Diese Threads oben und viele andere, nach denen ich im Internet gesucht habe, waren hilfreich, um das Problem zu lösen, haben aber nichts gelöst.

ANTWORTEN

Pip sucht nach MySQL-Binärdateien im Homebrew-Verzeichnis, das relativ zu Macintosh HD @ liegt.

usr/local/Cellar/

ich habe festgestellt, dass Sie dazu 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 

usr/local/mysql/bin

Schritt 3: Sobald das Terminal geöffnet ist und ein Texteditor der Wahl verwendet wird - ich bin selbst ein Neovim-Typ, also habe ich getippt (kommt nicht automatisch mit Mac ... eine andere Geschichte für einen anderen Tag)

nvim mysql_config

Schritt 4: Sie sehen ca. Zeile 112

# Create options 
libs="-L$pkglibdir"
libs="$libs -l "

Ändern

# Create options 
libs="-L$pkglibdir"
libs="$libs -lmysqlclient -lssl -lcrypto"

* Sie werden feststellen, dass diese Datei schreibgeschützt ist, wenn Sie vim oder neovim verwenden

:w !Sudo tee %

Schritt 5: Gehen Sie zum Stammverzeichnis und bearbeiten Sie die Datei .bash_profile

cd ~

Dann

nvim .bash_profile

und hinzufügen

export PATH="/usr/local/mysql/bin:$PATH"

in die Datei dann speichern

Schritt 6: Suchen Sie die Pfade relativ zu Macintosh HD und fügen Sie sie hinzu

cd private/etc/

dann 

nvim paths

und hinzufügen 

/usr/local/mysql/bin

* Sie werden wieder feststellen, dass diese Datei schreibgeschützt ist, wenn Sie vim oder neovim verwenden

:w !Sudo tee % 

dann

cd ~

aktualisieren Sie dann das Terminal mit Ihren Änderungen, indem Sie es ausführen 

source .bash_profile

Endlich

pip3 install mysqlclient

Und Viola. Denken Sie daran, es ist eine Atmosphäre.

Dies passiert auch, wenn ich mysqlclient installiert habe.

$ pip install mysqlclient

Wie user3429036 sagte,

$ brew install mysql
2
AndreL

Wenn Sie kein vollständiges mysql installieren möchten, können Sie dies beheben, indem Sie einfach mysqlclient brew install mysqlclient .__ installieren. Sobald cmd abgeschlossen ist, werden Sie aufgefordert, die folgende Zeile zu ~/.bash_profile hinzuzufügen:

echo 'export PATH="/usr/local/opt/mysql-client/bin:$PATH"' >> ~/.bash_profile

Terminal schließen und neues Terminal starten und mit pip install mysqlclient fortfahren

0
Arun