J'essaie de faire exécuter un script Python sur le serveur Linux auquel je suis connecté via ssh. Le script utilise mysqldb. J'ai tous les autres composants dont j'ai besoin, mais lorsque j'essaie d'installer mySQLdb via setuptools,
python setup.py install
Je reçois le rapport d'erreur suivant lié à la commande mysql_config
.
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
Quelqu'un at-il rencontré cette erreur et si oui, comment l'avez-vous résolu/que puis-je faire pour installer correctement mysqldb?
mySQLdb est une interface python pour mysql, mais ce n'est pas mysql lui-même. Et apparemment, mySQLdb a besoin de la commande 'mysql_config', vous devez donc d'abord l'installer.
Pouvez-vous confirmer que vous avez ou n'a pas installé mysql lui-même, en exécutant "mysql" à partir du shell? Cela devrait vous donner une réponse autre que "mysql: command not found".
Quelle distribution sous Linux utilisez-vous? Mysql est pré-packagé pour la plupart des distributions Linux. Par exemple, pour debian/ubuntu, installer mysql est aussi simple que
Sudo apt-get install mysql-server
mysql-config est dans un paquet différent, qui peut être installé depuis (encore une fois, en supposant que debian/ubuntu):
Sudo apt-get install libmysqlclient-dev
si vous utilisez mariadb, la solution de remplacement pour mysql, lancez
Sudo apt-get install libmariadbclient-dev
J'installais python-mysql
sur Ubuntu 12.04 en utilisant
pip install mysql-python
J'ai d'abord eu le même problème:
Not Found "mysql_config"
Cela a fonctionné pour moi
$ Sudo apt-get install libmysqlclient-dev
Ensuite, j'ai eu ce problème:
...
_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
Puis j'ai essayé avec
apt-get install python-dev
Et puis j'étais heureux :)
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...
Ce qui suit a fonctionné pour moi sur Ubuntu 12.04 LTS:
apt-get install libmysqlclient-dev python-dev
Bien que cela ait fonctionné, j'ai quand même décidé de faire ce qui suit:
export PATH=$PATH:/usr/local/mysql/bin/
Sur Red Hat je devais faire
Sudo yum install mysql-devel gcc gcc-devel python-devel
Sudo easy_install mysql-python
Ensuite cela a fonctionné.
J'ai eu la même erreur en essayant d'installer mysql-python
.
Voici comment je l'ai corrigé.
Sudo PATH=/usr/local/mysql/bin/:$PATH pip install mysql-python
Le problème était que l'installateur ne pouvait pas trouver le mysql_config dans le chemin par défaut. Maintenant ça peut ... et ça a marché ..
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...
J'espère que cela t'aides.
Merci.
J'ai résolu ce problème en procédant comme suit:
Sudo apt-get install libmysqlclient-dev
Sudo apt-get install python-dev
Sudo python setup.py install
Les commandes (mysql aussi) mPATH peuvent être manquantes.
export PATH=$PATH:/usr/local/mysql/bin/
Je l'ai corrigé en installant libmysqlclient:
Sudo apt-get install libmysqlclient16-dev
Le package MySQL-python
utilise la commande mysql_config
pour en savoir plus sur la configuration mysql
sur votre hôte. Votre hôte n'a pas la commande mysql_config
.
Le paquet de bibliothèques de développement MySQL (MySQL-devel-xxx) de dev.mysql.com fournit cette commande et les bibliothèques nécessaires au paquet MySQL-python. Les packages MySQL-devel
se trouvent dans la zone de téléchargement du serveur de communauté. Les noms de paquet de la bibliothèque de développement MySQL commencent par MySQL-devel
et varient en fonction de la version de MySQL et de la plate-forme Linux (par exemple, MySQL-devel-5.5.24-1.linux2.6.x86_64.rpm
.).
Notez que vous n’avez pas besoin d’installer mysql server.
(Spécifique à mac) J'ai essayé beaucoup de choses, mais ces commandes ont finalement fonctionné pour moi.
brew install mysql
# installer mysqlbrew unlink mysql
brew install mysql-connector-c
export PATH=/usr/local/Cellar/mysql/8.0.11/bin:$PATH
# chemin de mise à jour et définissez le dossier mysql bin sur cheminSudo ln -s /usr/local/Cellar/mysql/8.0.11/lib/libmysqlclient.21.dylib /usr/local/Cellar/lib/libmysqlclient.21.dylib
# créer un lien symbolique pip install mysqlclient
# installe enfin mysql-clientPour Alpine Linux:
$ apk add mariadb-dev mariadb-client mariadb-libs
MariaDB est un remplacement instantané de MySQL et est devenu le nouveau standard à partir d’Alpine 3.2. Voir https://bugs.alpinelinux.org/issues/4264
Sur ma machine Fedora 23, je devais exécuter les tâches suivantes:
Sudo dnf install mysql-devel
J'ai eu ces problèmes et résolu si en ajoutant un lien symbolique à mysql_config
.
J'avais installé mysql avec homebrew et l'avais vu dans la sortie.
Error: The `brew link` step did not complete successfully
En fonction de la manière dont vous avez obtenu mysql
, ce sera dans des endroits différents. Dans mon cas /usr/local/Cellar/mysql
Une fois que vous savez où il se trouve, vous devriez être en mesure de créer un lien symbolique vers l’endroit où python le cherche. /usr/local/mysql
Cela a fonctionné pour moi.
ln -s /usr/local/Cellar/mysql/<< VERSION >>/bin/mysql_config /usr/local/mysql/bin/mysql_config
Je pense que les lignes suivantes peuvent être exécutées sur un terminal
Sudo ln -s /usr/local/zend/mysql/bin/mysql_config /usr/sbin/
Ce répertoire mysql_config est destiné au serveur zend sur MacOSx. Vous pouvez le faire pour Linux comme les lignes suivantes
Sudo ln -s /usr/local/mysql/bin/mysql_config /usr/sbin/
C'est le répertoire par défaut de Linux MySQL.
Si vous êtes sur macOS et que vous avez déjà installé [email protected] via brew install:
brew install mysql-connector-c
brew unlink [email protected]
brew link --overwrite --dry-run [email protected]
d'abord, pour voir quels liens symboliques sont écrasésbrew link --overwrite --force [email protected]
pour écraser les liens symboliques liés à mysql avec [email protected]pip install mysqlclient
Vous devez installer le paquet python-dev:
Sudo apt-get install python-dev
Sudo apt-get install python-mysqldb
Python 2.5? On dirait que vous utilisez une très ancienne version de Ubuntu Server (Hardy 8.04?) - veuillez confirmer quelle version de Linux est utilisée par le serveur.
Recherche python-mysql sur la base de données de paquets ubuntu
Quelques informations supplémentaires:
Depuis le README de mysql-python -
Red Hat Linux .............
MySQL-python est pré-packagé dans Red Hat Linux 7.x et versions ultérieures. Ceci Inclut Fedora Core et Red Hat Enterprise Linux. Vous pouvez également construire vos propres packages RPM comme décrit ci-dessus.
Debian GNU/Linux ................
Emballé en tant que python-mysqldb
_ ::
# apt-get install python-mysqldb
Ou utilisez Synaptic.
.. _python-mysqldb
: http://packages.debian.org/python-mysqldb
Ubuntu ......
Identique à Debian.
Note de bas de page: Si vous utilisez réellement une distribution de serveur antérieure à Ubuntu 10.04, vous ne bénéficiez plus d'un support officiel et devez effectuer la mise à niveau le plus tôt possible.
J'ai eu le même problème. Je l'ai résolu en suivant ce tutoriel pour installer Python avec python3-dev sur Ubuntu 16.04:
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
Et maintenant, vous pouvez configurer votre environnement virtuel:
Sudo apt-get install -y python3-venv
pyvenv my_env
source my_env/bin/activate
En centos 7 cela fonctionne pour moi:
yum install mariadb-devel
pip install mysqlclient
Cette méthode est réservée à ceux qui savent que Mysql est installé mais que mysql_config ne peut toujours pas être trouvé. Cela se produit si l’installation python ne trouve pas mysql_config dans votre chemin système, ce qui arrive surtout si vous avez effectué l’installation via .dmg Mac Package ou si vous avez installé un chemin personnalisé. La méthode la plus simple et la plus documentée par MySqlDB consiste à modifier le fichier site.cfg . Trouvez le fichier mysql_config qui se trouve probablement dans/usr/local/mysql/bin/et modifiez la variable, à savoir mysql_config comme ci-dessous, puis relancez l'installation. N'oubliez pas de le commenter en supprimant "#"
Changer en dessous de la ligne
"#mysql_config =/usr/local/bin/mysql_config"
à
"mysql_config =/usr/local/mysql/bin/mysql_config"
en fonction du chemin dans votre système.
En passant, j’ai utilisé l’installation en python après avoir changé le fichier site.cfg
Sudo/System/Library/Frameworks/Python.framework/Versions/2.7/bin/python setup.py install
Comme l'erreur réelle est
gcc ... -I/usr/include/python2.7 ...
_mysql.c:29:20: error: Python.h: No such file or directory
et Si vous ne pouvez pas installer les packages python-dev ou python-devel, vous pouvez télécharger l’archive avec la version requise des sources python à partir de http://hg.python.org/ et placer les fichiers d’en-têtes dans le dossier approprié à inclure.
Sudo apt-get build-dep python-mysqldb
installera toutes les dépendances pour construire le paquet à partir de PIP/easy_install
J'ai rencontré le même problème, juste ajouté le chemin où * mysql_config * résidait dans la variable d'environnement PATH et cela fonctionnait pour moi.
Jusqu'à présent, toutes les solutions (Linux) nécessitent l'installation de Sudo
ou des droits root. La solution ci-dessous est la solution si vous ne disposez pas des droits root et sans Sudo
. (no Sudo apt install ...
):
dpkg -x libmysqlclient-dev_<version tag>.deb .
. Cela extraira un dossier appelé usr
. Lien symbolique ./usr/bin/mysql_config
vers un endroit qui se trouve sur votre $PATH
:
ln -s
`pwd`
/usr/bin/mysql_config FOLDER_IN_YOUR_PATH
Il devrait maintenant être capable de trouver mysql_config
Testé sur Ubuntu 18.04.
Il suffit de taper:
$ Sudo apt-get install python-dev
$ venv/bin/pip install MySQL-python
Cela résoudra ces problèmes.
Dans CentOS 7, il convient de procéder comme suit:
#step1:install mysql
https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/
#step2:
Sudo yum install mysql-devel
Pour macOS Mojave, une configuration supplémentaire était requise. Les compilateurs devaient trouver openssl vous devrez peut-être définir:
export LDFLAGS="-L/usr/local/opt/openssl/lib"
export CPPFLAGS="-I/usr/local/opt/openssl/include"