it-swarm.com.de

mysql_config wurde bei der Installation der mysqldb-Python-Schnittstelle nicht gefunden

Ich versuche, ein Python-Skript auf dem Linux-Server auszuführen, mit dem ich über SSH verbunden bin. Das Skript verwendet mysqldb. Ich habe alle anderen Komponenten, die ich brauche, aber wenn ich versuche, mySQLdb wie folgt über setuptools zu installieren :, 

python setup.py install

Ich erhalte den folgenden Fehlerbericht, der sich auf den Befehl mysql_config bezieht.

sh: mysql_config: command not found
Traceback (most recent call last):
  File "setup.py", line 15, in <module>
    metadata, options = get_config()
  File "/usr/lib/python2.5/MySQL-python-1.2.3/setup_posix.py", line 43, in get_config
    libs = mysql_config("libs_r")
  File "/usr/lib/python2.5/MySQL-python-1.2.3/setup_posix.py", line 24, in mysql_config
    raise EnvironmentError("%s not found" % (mysql_config.path,))
EnvironmentError: mysql_config not found

Ist jemand anderer auf diesen Fehler gestoßen und wenn ja, wie haben Sie ihn behoben? Was kann ich tun, um mysqldb erfolgreich zu installieren? 

369
user904542

mySQLdb ist eine Python-Schnittstelle für mysql, aber es ist nicht selbst mysql. Und anscheinend benötigt mySQLdb den Befehl 'mysql_config', also müssen Sie diesen zuerst installieren.

Können Sie bestätigen, dass Sie mysql selbst installiert haben oder nicht, indem Sie "mysql" in der Shell ausführen? Das sollte Ihnen eine andere Antwort als "mysql: command not found" geben. 

Welche Linux-Distribution verwenden Sie? Mysql ist für die meisten Linux-Distributionen vorinstalliert. Für Debian/Ubuntu ist das Installieren von MySQL beispielsweise so einfach wie möglich 

Sudo apt-get install mysql-server

mysql-config befindet sich in einem anderen Paket, das installiert werden kann (wiederum unter der Voraussetzung von debian/ubuntu):

Sudo apt-get install libmysqlclient-dev

wenn Sie mariadb, den Ersatz für mysql, verwenden, dann führen Sie Folgendes aus

Sudo apt-get install libmariadbclient-dev
534
amarillion

Ich habe python-mysql auf Ubuntu 12.04 installiert 

pip install mysql-python

Zuerst hatte ich das gleiche Problem:

Not Found "mysql_config"

Das hat bei mir funktioniert 

$ Sudo apt-get install libmysqlclient-dev

Dann hatte ich dieses Problem:

...
_mysql.c:29:20: error fatal: Python.h: No existe el archivo o el directorio

compilación terminada.

error: command 'gcc' failed with exit status 1

Dann versuchte ich es mit

apt-get install python-dev

Und dann war ich glücklich :)

pip install mysql-python
    Installing collected packages: mysql-python
      Running setup.py install for mysql-python
        building '_mysql' extension
        gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -Dversion_info=(1,2,4,'beta',4) -D__version__=1.2.4b4 -I/usr/include/mysql -I/usr/include/python2.7 -c _mysql.c -o build/temp.linux-x86_64-2.7/_mysql.o -DBIG_JOINS=1 -fno-strict-aliasing -g
        In file included from _mysql.c:44:0:
        /usr/include/mysql/my_config.h:422:0: aviso: se redefinió "HAVE_WCSCOLL" [activado por defecto]
        /usr/include/python2.7/pyconfig.h:890:0: nota: esta es la ubicación de la definición previa
        gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro build/temp.linux-x86_64-2.7/_mysql.o -L/usr/lib/x86_64-linux-gnu -lmysqlclient_r -lpthread -lz -lm -lrt -ldl -o build/lib.linux-x86_64-2.7/_mysql.so

Successfully installed mysql-python
Cleaning up...
164
xtornasol512

Das Folgende funktionierte für mich auf Ubuntu 12.04 LTS:

apt-get install libmysqlclient-dev python-dev

Obwohl alles funktioniert hat, habe ich immer noch das Folgende gemacht:

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

Bei Red Hat musste ich machen

Sudo yum install mysql-devel gcc gcc-devel python-devel
Sudo easy_install mysql-python

Dann hat es funktioniert.

27
Elliott

Ich habe die gleiche Fehlermeldung erhalten, als ich mysql-python installierte.

So habe ich es behoben.

Sudo PATH=/usr/local/mysql/bin/:$PATH pip install mysql-python

Das Problem war, dass das Installationsprogramm die mysql_config im Standardpfad nicht finden konnte. Jetzt kann es ..und es hat funktioniert ..

 15 warnings generated.
    clang -bundle -undefined dynamic_lookup -Wl,-F. build/temp.macosx-10.8-intel-2.7/_mysql.o -L/usr/local/mysql/lib -lmysqlclient_r -lz -lm -lmygcc -o build/lib.macosx-10.8-intel-2.7/_mysql.so -Arch x86_64

Successfully installed mysql-python
Cleaning up...

Hoffe das hilft.

Vielen Dank.

23
Mayank R Jain

Ich habe dieses Problem mit den folgenden Schritten behoben:

Sudo apt-get install libmysqlclient-dev
Sudo apt-get install python-dev
Sudo python setup.py install
17
zhaozhi

Die Befehle (auch mysql) mPATH fehlen möglicherweise. 

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

16
samwize

Ich habe es durch die Installation von libmysqlclient behoben:

Sudo apt-get install libmysqlclient16-dev
8
thoslin

Das Paket MySQL-python verwendet den Befehl mysql_config, um mehr über die mysql-Konfiguration auf Ihrem Host zu erfahren. Ihr Host verfügt nicht über den Befehl mysql_config.

Das MySQL-Paket für Entwicklungsbibliotheken (MySQL-devel-xxx) von dev.mysql.com enthält diesen Befehl und die für das MySQL-python-Paket erforderlichen Bibliotheken. Die MySQL-devel-Pakete befinden sich im Download-Community-Server-Bereich. Die Paketnamen der MySQL-Entwicklungsbibliothek beginnen mit MySQL-devel und variieren je nach MySQL-Version und Linux-Plattform (z. B. MySQL-devel-5.5.24-1.linux2.6.x86_64.rpm).

Beachten Sie, dass Sie den mysql-Server nicht installieren müssen.

7
John Livingston

(Spezifisch für Mac) Ich habe viele Dinge ausprobiert, aber diese Befehlssätze funktionierten schließlich für mich. 

  1. brew install mysql # install mysql
  2. brew unlink mysql 
  3. brew install mysql-connector-c
  4. export PATH=/usr/local/Cellar/mysql/8.0.11/bin:$PATH # update path und setze den mysql bin-Ordner auf path
  5. Sudo ln -s /usr/local/Cellar/mysql/8.0.11/lib/libmysqlclient.21.dylib /usr/local/Cellar/lib/libmysqlclient.21.dylib # Symlink erstellen 
  6. pip install mysqlclient # Installiere den mysql-client schließlich
7
Pulkit Pahwa

Für Alpine Linux:

$ apk add mariadb-dev mariadb-client mariadb-libs

MariaDB ist ein Drop-In-Ersatz für MySQL und wurde ab Alpine 3.2 zum neuen Standard. Siehe https://bugs.alpinelinux.org/issues/4264

5
aboutaaron

Auf meinem Fedora 23-Computer musste ich Folgendes ausführen:

Sudo dnf install mysql-devel
5
Raptor

Ich hatte dieses Problem und löste es, wenn ich einen Symlink zu mysql_config hinzufügte. 

Ich hatte Mysql mit Homebrew installiert und sah dies in der Ausgabe.

Error: The `brew link` step did not complete successfully

Je nachdem, wie Sie mysql bekommen haben, wird es an verschiedenen Orten sein. In meinem Fall /usr/local/Cellar/mysql
Wenn Sie einmal wissen, wo es sich befindet, sollten Sie in der Lage sein, einen symbolischen Link zu der Stelle zu setzen, wo Python danach sucht. /usr/local/mysql 

Das hat bei mir funktioniert. 

ln -s /usr/local/Cellar/mysql/<< VERSION >>/bin/mysql_config   /usr/local/mysql/bin/mysql_config
4
Schechter

Ich denke, folgende Zeilen können auf dem Terminal ausgeführt werden

 Sudo ln -s /usr/local/zend/mysql/bin/mysql_config /usr/sbin/

Dieses Verzeichnis mysql_config ist für den zend-Server unter MacOSx. Sie können es für Linux wie die folgenden Zeilen tun

Sudo ln -s /usr/local/mysql/bin/mysql_config /usr/sbin/

Dies ist das standardmäßige Linux-MySQL-Verzeichnis. 

4
hkulekci

Wenn Sie sich unter macOS befinden und [email protected] via brew installiert haben, installieren Sie Folgendes:

  1. brew install mysql-connector-c
  2. brew unlink [email protected] 
  3. brew link --overwrite --dry-run [email protected] zuerst, um zu sehen, welche Symlinks überschrieben werden
  4. brew link --overwrite --force [email protected], um MySQL-bezogene Symlinks tatsächlich mit [email protected] zu überschreiben
  5. pip install mysqlclient
3
rilut

Sie müssen das Paket python-dev installieren:

Sudo apt-get install python-dev
3
ebarch

Sudo apt-get install python-mysqldb

Python 2.5? Klingt nach einer sehr alten Version von Ubuntu Server (Hardy 8.04?). Bitte überprüfen Sie, welche Linux-Version der Server verwendet.

python-mysql-Suche in der Ubuntu-Paketdatenbank

Einige zusätzliche Informationen: 

Aus dem README von mysql-python - 

Red Hat Linux .............

MySQL-Python ist in Red Hat Linux 7.x und neuer vorinstalliert. Dieses Umfasst Fedora Core und Red Hat Enterprise Linux. Sie können auch, wie oben beschrieben, eigene RPM-Pakete erstellen.

Debian GNU/Linux ................

Verpackt als python-mysqldb_ ::

# apt-get install python-mysqldb

Oder verwenden Sie Synaptic.

.. _python-mysqldb: http://packages.debian.org/python-mysqldb

Ubuntu ......

Gleich wie bei Debian.

Fußnote: Wenn Sie wirklich eine ältere Serverdistribution als Ubuntu 10.04 verwenden, haben Sie keinen offiziellen Support mehr und sollten eher früher als später ein Upgrade durchführen.

2
Gary

Ich hatte das gleiche Problem. Ich habe das Problem gelöst, indem Sie dieses Tutorial zur Installation von Python mit Python3-dev auf Ubuntu 16.04 befolgen:

Sudo apt-get update
Sudo apt-get -y upgrade
Sudo apt-get install -y python3-pip
Sudo apt-get install build-essential libssl-dev libffi-dev python3-dev

Jetzt können Sie Ihre virtuelle Umgebung einrichten:

Sudo apt-get install -y python3-venv
pyvenv my_env
source my_env/bin/activate
2
Little Brain

In Centos 7 funktioniert das für mich:

yum install mariadb-devel
pip install mysqlclient
2
Rajiv Sharma

Diese Methode ist nur für diejenigen gedacht, die wissen, dass Mysql installiert ist, aber mysql_config nicht gefunden werden kann. Dies passiert, wenn die Python-Installation mysql_config nicht in Ihrem Systempfad finden kann. Dies geschieht meistens, wenn Sie die Installation über das .dmg Mac Package durchgeführt haben oder über einen benutzerdefinierten Pfad installiert wurden. Der einfachste und dokumentierteste Weg von MySqlDB ist das Ändern der Datei site.cfg . Suchen Sie die Datei mysql_config, die sich wahrscheinlich in/usr/local/mysql/bin/befindet, und ändern Sie die Variable, nämlich mysql_config , genau wie unten, und führen Sie die Installation erneut aus. Vergessen Sie nicht, den Kommentar zu entfernen, indem Sie "#" entfernen.

Ändern Sie unter der Zeile

"#mysql_config =/usr/local/bin/mysql_config"

zu

"mysql_config =/usr/local/mysql/bin/mysql_config"

abhängig vom Pfad in Ihrem System. 

Übrigens habe ich Python installiert, nachdem ich die site.cfg geändert habe.

Sudo /System/Library/Frameworks/Python.framework/Versions/2.7/bin/python setup.py install

2
Ahsan.Amin

Da ist eigentlich Fehler

gcc ... -I/usr/include/python2.7 ...

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

wenn Sie die Pakete python-dev oder python-devel nicht installieren können, können Sie das Archiv mit der erforderlichen Version der Python-Quellen von http://hg.python.org/ herunterladen und die Header-Dateien im richtigen Ordner für das Include ablegen

1
Oleg Neumyvakin

Sudo apt-get build-dep python-mysqldb installiert alle Abhängigkeiten, um das Paket aus PIP/easy_install zu erstellen

1
Thomas Grainger

Ich bin auf das gleiche Problem gestoßen, habe nur den Pfad hinzugefügt, in dem * mysql_config * der Umgebungsvariablen PATH stand und es funktionierte für mich.

1
flyer

Bisher benötigen alle Lösungen (Linux) Sudo oder Root-Rechte zur Installation ..__ Hier ist eine Lösung, wenn Sie keine Root-Rechte haben und ohne Sudo. (nein Sudo apt install ...):

  1. Laden Sie die .deb-Datei von libmysqlclient-dev herunter, z. von diesem Spiegel
  2. Navigieren Sie zu der heruntergeladenen Datei und führen Sie dpkg -x libmysqlclient-dev_<version tag>.deb . aus. Dadurch wird ein Ordner mit dem Namen usr extrahiert. 
  3. Symlink ./usr/bin/mysql_config mit irgendwo auf Ihrem $PATH gefundenem Ort:

    ln -s`pwd`/usr/bin/mysql_config FOLDER_IN_YOUR_PATH

  4. Es sollte jetzt mysql_config finden können.

Getestet auf Ubuntu 18.04.

1
RunOrVeith

Schreib einfach:

$ Sudo apt-get install python-dev
$ venv/bin/pip install MySQL-python

Dadurch werden diese Probleme gelöst.

1
Luciano D. Mota

In CentOS 7 sollten folgende Schritte ausgeführt werden:

#step1:install mysql 
https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/

#step2:
Sudo yum install mysql-devel
0
DachuanZhao

Für macOS Mojave war eine zusätzliche Konfiguration erforderlich, damit Compiler openssl finden können. Möglicherweise müssen Sie Folgendes festlegen:

export LDFLAGS="-L/usr/local/opt/openssl/lib"
export CPPFLAGS="-I/usr/local/opt/openssl/include"
0