Die Installation von pip mysql-python schlägt mit EnvironmentError fehl: mysql_config wurde nicht gefunden

823

Dies ist der Fehler, den ich bekomme

(mysite)zjm1126@zjm1126-G41MT-S2:~/zjm_test/mysite$ pip install mysql-python
Downloading/unpacking mysql-python
  Downloading MySQL-python-1.2.3.tar.gz (70Kb): 70Kb downloaded
  Running setup.py egg_info for package mysql-python
    sh: mysql_config: not found
    Traceback (most recent call last):
      File "<string>", line 14, in <module>
      File "/home/zjm1126/zjm_test/mysite/build/mysql-python/setup.py", line 15, in <module>
        metadata, options = get_config()
      File "setup_posix.py", line 43, in get_config
        libs = mysql_config("libs_r")
      File "setup_posix.py", line 24, in mysql_config
        raise EnvironmentError("%s not found" % (mysql_config.path,))
    EnvironmentError: mysql_config not found
    Complete output from command python setup.py egg_info:
    sh: mysql_config: not found

Traceback (most recent call last):

  File "<string>", line 14, in <module>

  File "/home/zjm1126/zjm_test/mysite/build/mysql-python/setup.py", line 15, in <module>

    metadata, options = get_config()

  File "setup_posix.py", line 43, in get_config

    libs = mysql_config("libs_r")

  File "setup_posix.py", line 24, in mysql_config

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

EnvironmentError: mysql_config not found

----------------------------------------
Command python setup.py egg_info failed with error code 1
Storing complete log in /home/zjm1126/.pip/pip.log
(mysite)zjm1126@zjm1126-G41MT-S2:~/zjm_test/mysite$ pip install mysql-python
Downloading/unpacking mysql-python
  Running setup.py egg_info for package mysql-python
    sh: mysql_config: not found
    Traceback (most recent call last):
      File "<string>", line 14, in <module>
      File "/home/zjm1126/zjm_test/mysite/build/mysql-python/setup.py", line 15, in <module>
        metadata, options = get_config()
      File "setup_posix.py", line 43, in get_config
        libs = mysql_config("libs_r")
      File "setup_posix.py", line 24, in mysql_config
        raise EnvironmentError("%s not found" % (mysql_config.path,))
    EnvironmentError: mysql_config not found
    Complete output from command python setup.py egg_info:
    sh: mysql_config: not found

Traceback (most recent call last):

  File "<string>", line 14, in <module>

  File "/home/zjm1126/zjm_test/mysite/build/mysql-python/setup.py", line 15, in <module>

    metadata, options = get_config()

  File "setup_posix.py", line 43, in get_config

    libs = mysql_config("libs_r")

  File "setup_posix.py", line 24, in mysql_config

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

EnvironmentError: mysql_config not found

----------------------------------------
Command python setup.py egg_info failed with error code 1
Storing complete log in /home/zjm1126/.pip/pip.log

Was kann ich tun, um dieses Problem zu beheben?

zjm1126
quelle
1
Siehe diesen Thread: [mysql_config bei der Installation der mysqldb-Python-Schnittstelle nicht gefunden] [1] hat bei mir funktioniert :) [1]: stackoverflow.com/questions/7475223/…
Staccato
Ich bin ein MAC OS-Benutzer. Ich löse dieses Problem mit dieser Frage. Stackoverflow.com/questions/50940302/…
PatricioS

Antworten:

1397

Es scheint, dass mysql_config auf Ihrem System fehlt oder das Installationsprogramm es nicht finden konnte. Stellen Sie sicher, dass mysql_config wirklich installiert ist.

Zum Beispiel müssen Sie unter Debian / Ubuntu das Paket installieren:

sudo apt-get install libmysqlclient-dev

Möglicherweise befindet sich die mysql_config nicht in Ihrem Pfad. Dies ist der Fall, wenn Sie die mysql-Suite selbst kompilieren.

Update: Für neuere Versionen von debian / ubuntu (Stand 2018) ist es

sudo apt install default-libmysqlclient-dev
Fbo
quelle
24
Das hat immer noch einen Fehler für mich verursacht. Ich habe apt-get install python-mysqldbstattdessen verwendet.
Jonatan Littke
51
meine 2c Erfahrung: sudo apt-get install libmysqlclient-devarbeitete für mich, sudo apt-get install python-mysqldbhat nicht geholfen
Anentropic
20
@ JonatanLittke Die Installation einer globalen Python-MySQLD-Version widerspricht dem Punkt der virtuellen IMO.
Fncomp
42
für Mariadb sudo apt-get install libmariadbclient-devhat der Trick getan.
Yuvilio
11
Wenn diese Lösungen für Sie nicht funktionieren, müssen Sie möglicherweise noch Python-Dev installieren:apt-get install python-dev
Anoyz
295

Unter Mac OS habe ich dies einfach im Terminal ausgeführt, um Folgendes zu beheben:

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

Dies ist die schnellste Lösung, die ich gefunden habe - sie fügt sie dem Pfad hinzu, aber ich denke, Sie sollten sie dauerhaft hinzufügen (dh hinzufügen /etc/paths), wenn Sie MySQL-Python in einer anderen Umgebung installieren möchten.

(getestet in OSX Mountain Lion)

Chris Villa
quelle
6
Wenn Sie den MAMP-Stack von bitnami verwenden verwenden export PATH=$PATH:/Applications/mampstack-5.3.17-0/mysql/binWenn Sie diesen kommerziellen MAMP-Stack verwenden , deinstallieren Sie ihn andererseits und holen Sie sich den bitnami- Stack , da er beschissen ist und die MySQL-Header nicht enthält.
Timmmm
3
Um den Pfad dauerhaft zu machen, fügen Sie ihn unten in /etc/paths- Sie müssen ein neues Terminalfenster öffnen, um auf den neuen Pfad zuzugreifen.
Rojoca
@Timmmm Ziemlich teure Lösung, da alle meine Datenbanken in der offiziellen Version vorliegen: / Gibt es eine andere Möglichkeit, dies zu klären?
Volatil3
1
Sehr hilfreich. Wenn Sie XAMPP verwenden, verwenden Sie es alsexport PATH=$PATH:/Applications/XAMPP/xamppfiles/bin
Kevin London
10
Das funktioniert endlich danke! Auch wenn mysqles nicht installiert ist, verwenden Sie es brew install mysqldort , wo sich der Speicherort befindet /usr/local/bin/mysql(oder /usr/local/Cellar/mysql/VERSION/bin/wenn er nicht verknüpft ist).
Aziz Alto
102
apt-get install libmysqlclient-dev python-dev

Schien den Trick zu tun.

Steve Gregory
quelle
2
Ja, für mich war nur libmysqlclient-dev nicht genug, Python-dev fehlte auch.
Anderson Santos
Unter Ubuntu 12.04 (präzise) (32-Bit) nach dem Inplace-Upgrade von 10.04 (klar) konnten nur diese Fehler behoben werden. Speziell der zusätzliche "Python-Dev"!
Eis
Hat auch für mich funktioniert - Python-Dev war das letzte Puzzleteil. Python-mysqldb war bereits installiert, das ist also definitiv nicht alles, was benötigt wird.
Tim S.
Update: Für Python3 müssen Sie installieren python3-dev.
Cezar
Ich musste dies tun und auch installieren gcc, um eine erfolgreiche Installation zu erhalten. Außerdem ist es wahrscheinlich am besten, nicht zu tun python-dev, sondern geben Sie die bestimmte Version wie python2.7-dev, python3.6-devusw.
Tim Tisdall
89

Es gibt möglicherweise verschiedene Antworten auf das oben genannte Problem. Im Folgenden finden Sie eine aggregierte Lösung.

Für Ubuntu:

$ sudo apt update
$ sudo apt install python-dev
$ sudo apt install python-MySQLdb

Für CentOS:

$ yum install python-devel mysql-devel
user2886440
quelle
Danke für den Centos Tipp. Ich habe den ganzen Morgen gejagt.
Pete Magsig
Vielleicht lohnt es sich hinzuzufügen python3-dev/python3-devel
Gergely M
36

Wenn Sie auf MAC sind Installieren Sie dies global

brew install mysql

Exportieren Sie dann den Pfad wie folgt

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

Als global oder in Ihrem Venv, was immer Sie wollen

pip install MySQL-Python

Hinweis: Global für Python3, da Mac sowohl Python2 als auch 3 haben kann

pip3 install MySQL-Python
Zaman Afzal
quelle
34

Sie können den MySQL Connector / Python verwenden

Installation über PyPip

pip install mysql-connector-python

Weitere Informationen finden Sie im Beta-Ankündigungsblog von MySQL Connector / Python 1.0.5 .

Auf dem Launchpad gibt es ein gutes Beispiel für das Hinzufügen, Bearbeiten oder Entfernen von Daten mit der Bibliothek.

ndequeker
quelle
3
Dies ist das einzige, was für mich funktioniert hat, als ich mysqldb und das fehlende Durcheinander mysql_config aufgegeben habe. Funktioniert gut für meine Zwecke.
Wh1tney
@wjoba kannst du das weiter erklären? Ich bin installiert py-mysql2pgsqlund finde einen Fehler von mysql_config. Ich benutze MAMP. Was macht der MySQL-Connector?
Volatil3
1
@ Volatil3 mysql-connector-python hat sich für mich als sofort einsatzbereiter Ersatz für mysql-python bewährt. Die Installation des ersteren über pip funktionierte ohne Probleme und beseitigte den Fehler mysql_config, da der mysql-Connector (nach den eigenen Worten des Entwicklers) "reines Python ist und keine andere MySQL-Software benötigt, also keine C-Bibliotheken und Kompilierung". Ich hoffe, das hilft. Versuchen Sie die in dieser Lösung erwähnte Installation und prüfen Sie, ob der Fehler weiterhin auftritt.
Wh1tney
Unter Ubuntu 14/4 bekomme ich: Es konnten keine Downloads gefunden werden, die die Anforderung mysql-connector-python erfüllen
Timo
Dieser Befehl funktionierte für mich, nachdem ich alles andere ausprobiert hatte.
Uhr
27

Für Centos- Benutzer:

yum install -y mysql-devel python-devel python-setuptools

dann

pip install MySQL-python


Wenn diese Lösung nicht funktioniert , drucken Sie den gcc-Kompilierungsfehler wie folgt :
_mysql.c:29:20: error: Python.h: No such file or directory

Sie müssen den Pfad Python.hwie folgt angeben :
pip install --global-option=build_ext --global-option="-I/usr/include/python2.6" MySQL-python

lancerex
quelle
1
Das klingt so, als hätten Sie nicht die richtigen Include-Dateien für die Python-Binärdatei pip, für die installiert wird. Python selbst stellt normalerweise den Include-Speicherort bereit. Die manuelle Angabe des Pfads zeigt höchstwahrscheinlich auf die falsche Version .
Martijn Pieters
Ich musste sudo pip install MySQL-pythonwegen eines Fehlers eine machen:copying build/lib.linux-x86_64-2.7/_mysql_exceptions.py -> /usr/lib64/python2.7/site-packages error: /usr/lib64/python2.7/site-packages/_mysql_exceptions.py: Permission denied
Bennythejudge
18

Ich habe versucht, mysql-pythonauf einer Amazon EC2 Linux-Instanz zu installieren, und musste diese installieren:

yum install mysql mysql-devel mysql-common mysql-libs gcc

Aber dann habe ich diesen Fehler bekommen:

_mysql.c:29:20: fatal error: Python.h: No such file or directory

Also habe ich installiert:

yum install python-devel

Und das hat den Trick gemacht.

Emil Davtyan
quelle
1
Ich habe verwendet: sudo yum install mysql mysql-devel mysql-common mysql-libs gcc außerhalb meiner virtuellen Umgebung. Dann kehrte ich zu meiner virtuellen Umgebung zurück und lief pip install mysql-pythonund es funktionierte.
Tandy
1
dnf install mysql-devel gccwar genug für mich, es kommt auf den Rest an
Jens Timmerman
python-develwird jetzt Fehler geben, wenn Sie Python 2.7 verwenden, versuchen Sie diespython27-devel
Sizzling Code
8

Für alle, die MariaDB anstelle von MySQL verwenden, besteht die Lösung darin, das libmariadbclient-devPaket zu installieren und einen symbolischen Link zur Konfigurationsdatei mit dem richtigen Namen zu erstellen.

Zum Beispiel hat das bei mir funktioniert:

ln -s /usr/bin/mariadb_config /usr/bin/mysql_config
Alexandru Chirila
quelle
2
Dies ist eine unterschätzte Antwort, die in jedem Fall nützlich ist, in dem eine Verbindung zu einem bestimmten, bekannten Datenbank-Socket hergestellt werden soll. Es hat mir geholfen, eine Verbindung zu einer eigenständigen MySQL-Datenbank herzustellen. Die meisten Lösungen hier empfehlen lediglich die Neuinstallation (oder Installation eines zweiten oder dritten ... usw.) des msql-Clients!
7yl4r
6

Versuchen sudo apt-get build-dep python-mysqldb

KalamHavij
quelle
6

OSX Mavericks

Aufgrund von Änderungen in den Entwicklungstools von osx mavericks & xcode kann der Fehler bei der Installation auftreten

clang: error: unknown argument: '-mno-fused-madd' [-Wunused-command-line-argument-hard-error-in-future]

Verwenden Sie daher:

sudo ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future pip install mysql-python
Thomas Schwärzl
quelle
6

Für Linux

das funktioniert bei mir

yum install python-devel mysql-devel
Penny Chan
quelle
5

für mariadb installiere lib mariadb client-dev anstelle von libmysqlclient-dev

sudo apt-get install libmariadbclient-dev
Dinesh Sharma
quelle
Genau das, was ich brauche, wenn ich Debian 9 Stretch mit MariaDB
benutze
4

Sie sollten das mysqlerste installieren :

yum install python-devel mysql-community-devel -y

Dann können Sie installieren mysqlclient:

pip install  mysqlclient
Flugzeug
quelle
2

Manchmal hängt der Fehler von der tatsächlichen Ursache ab. Wir hatten einen Fall, in dem mysql-python über das Debian-Paket python-mysqldb installiert wurde.

Ein Entwickler, der das nicht wusste, lief versehentlich pip uninstall mysql-python und konnte sich dann nicht mit erholenpip install mysql-python dem oben genannten Fehler .

pip uninstall mysql-python hatte den Inhalt des Debian-Pakets zerstört, und natürlich pip install mysql-python fehl, weil das Debian-Paket keine Entwicklungsdateien benötigte.

Die richtige Lösung in diesem Fall war apt-get install --reinstall python-mysqldb, MySQL-Python in seinen ursprünglichen Zustand zurückzusetzen.

eMBee
quelle
2

Ich hatte das gleiche Problem in der Terraform: Lichtbehälter. Es basiert auf Alpine.

Dort müssen Sie mariadb-dev installieren mit:

apk add mariadb-dev

Dies reicht jedoch nicht aus, da auch alle anderen Abhängigkeiten übersehen werden:

apk add python2 py2-pip gcc python2-dev musl-dev
Alex
quelle
2

Reihenfolge zu befolgen.

pip install mysqlclient
sudo apt-get install python3-dev libmysqlclient-dev
pip install configparser 
sudo cp /usr/lib/python3.6/configparser.py /usr/lib/python3.6/ConfigParser.py 

Versuchen Sie dann erneut, die MYSQL-Python zu installieren. Das hat bei mir funktioniert

lakshmankashyap
quelle
1

Beim Installieren unter OS X Server 10.6.8 trat ein ähnliches Problem auf. Folgendes musste ich tun. Verwenden von:

MySQL-Python 1.2.4b4 (Quelle) MySQL-5.6.19 (Binärinstallationsprogramm) Python 2.7 (Binärinstallationsprogramm) HINWEIS: Installation in virtualenv ...

Entpacken Sie die Quelle, öffnen Sie 'Distribute_setup.py' und bearbeiten Sie DEFAULT_VERSION, um die neueste Version der Distribute-Tools zu verwenden:

DEFAULT_VERSION = "0.6.49"

Speichern. Öffnen Sie die Datei 'site.cfg' und kommentieren Sie den Pfad zu mysql_config aus, damit er ungefähr so ​​aussieht (verweisen Sie Ihren eigenen Pfad auf mysql_config):

# The path to mysql_config.
# Only use this if mysql_config is not on your PATH, or you have some weird
# setup that requires it.
mysql_config = /usr/local/mysql/bin/mysql_config

Jetzt wird das Bereinigen, Erstellen und Erstellen nicht mit dem Fehler 'mysql_config' fehlschlagen. Hoffe das hilft jemand anderem, der versucht, seine alten xserves zu nutzen :-)

Brad Herdson
quelle
1

Ihr Sudo-Pfad kennt Ihren lokalen Pfad nicht. Wechseln Sie in den Superuser-Modus, fügen Sie den Pfad hinzu und installieren Sie ihn von dort aus.

sudo su
export PATH=$PATH:/usr/local/mysql/bin/
pip install mysql-python
exit

Und Sie sind unter OSX einsatzbereit. Jetzt haben Sie eine aktualisierte globale Python.

Paul Kenjora
quelle
1

Wenn Sie MySQL-Python in Ihrer virtuellen Umgebung installieren, sollten Sie die Pip-Version überprüfen. Wenn die Version älter als 9.0.1 ist, aktualisieren Sie sie bitte

pip install --upgrade pip
Albert Chen
quelle
Siehe stackoverflow.com/questions/7475223/… Ich glaube nicht, dass Ihre Antwort helfen wird
Linus
0

Unter MacOS Mojave befindet sich mysql_config unter / usr / local / bin / und nicht unter / usr / local / mysql / bin, wie oben angegeben, sodass dem Pfad nichts hinzugefügt werden muss.

Avidan Efody
quelle