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?
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
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...
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/
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.
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.
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
Die Befehle (auch mysql) mPATH fehlen möglicherweise.
export PATH=$PATH:/usr/local/mysql/bin/
Ich habe es durch die Installation von libmysqlclient behoben:
Sudo apt-get install libmysqlclient16-dev
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.
(Spezifisch für Mac) Ich habe viele Dinge ausprobiert, aber diese Befehlssätze funktionierten schließlich für mich.
brew install mysql
# install mysqlbrew unlink mysql
brew install mysql-connector-c
export PATH=/usr/local/Cellar/mysql/8.0.11/bin:$PATH
# update path und setze den mysql bin-Ordner auf pathSudo ln -s /usr/local/Cellar/mysql/8.0.11/lib/libmysqlclient.21.dylib /usr/local/Cellar/lib/libmysqlclient.21.dylib
# Symlink erstellen pip install mysqlclient
# Installiere den mysql-client schließlichFü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
Auf meinem Fedora 23-Computer musste ich Folgendes ausführen:
Sudo dnf install mysql-devel
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
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.
Wenn Sie sich unter macOS befinden und [email protected] via brew installiert haben, installieren Sie Folgendes:
brew install mysql-connector-c
brew unlink [email protected]
brew link --overwrite --dry-run [email protected]
zuerst, um zu sehen, welche Symlinks überschrieben werdenbrew link --overwrite --force [email protected]
, um MySQL-bezogene Symlinks tatsächlich mit [email protected] zu überschreibenpip install mysqlclient
Sie müssen das Paket python-dev installieren:
Sudo apt-get install python-dev
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.
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
In Centos 7 funktioniert das für mich:
yum install mariadb-devel
pip install mysqlclient
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
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
Sudo apt-get build-dep python-mysqldb
installiert alle Abhängigkeiten, um das Paket aus PIP/easy_install zu erstellen
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.
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 ...
):
dpkg -x libmysqlclient-dev_<version tag>.deb .
aus. Dadurch wird ein Ordner mit dem Namen usr
extrahiert. Symlink ./usr/bin/mysql_config
mit irgendwo auf Ihrem $PATH
gefundenem Ort:
ln -s
`pwd`
/usr/bin/mysql_config FOLDER_IN_YOUR_PATH
Es sollte jetzt mysql_config
finden können.
Getestet auf Ubuntu 18.04.
Schreib einfach:
$ Sudo apt-get install python-dev
$ venv/bin/pip install MySQL-python
Dadurch werden diese Probleme gelöst.
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
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"