web-dev-qa-db-fra.com

échec de l'installation de pip mysql-python avec EnvironmentError

C'est l'erreur que je reçois

(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

Que puis-je faire pour résoudre ce problème?

724
zjm1126

Il semble que mysql_config soit manquant sur votre système ou l'installateur ne l'a pas trouvé . Assurez-vous que mysql_config est vraiment installé.

Par exemple, sur Debian/Ubuntu, vous devez installer le paquet:

Sudo apt-get install libmysqlclient-dev

Peut-être que mysql_config n'est pas dans votre chemin, ce sera le cas lorsque vous compilerez vous-même La suite mysql.

Mise à jour: Pour les versions récentes de debian/ubuntu (à partir de 2018), il s'agit 

Sudo apt install default-libmysqlclient-dev
1225
Fbo

Sous Mac OSX Mountain Lion, j'ai simplement exécuté ceci dans un terminal pour corriger:

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

C’est le correctif le plus rapide que j’ai trouvé - il l’ajoute au chemin, mais je pense que vous feriez mieux de l’ajouter définitivement (c’est-à-dire, ajoutez-le à /etc/paths) si vous envisagez d’installer MySQL-python dans un autre environnement.

269
Chris Villa
apt-get install libmysqlclient-dev python-dev

Semblait faire l'affaire.

95
steve-gregory

Il existe peut-être diverses réponses au problème ci-dessus. Vous trouverez ci-dessous une solution globale.

Pour Ubuntu:

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

Pour CentOS:

$ yum install python-devel mysql-devel
77
user2886440

Vous pouvez utiliser le connecteur MySQL/Python

Installation via PyPip

pip install mysql-connector-python

Vous trouverez des informations complémentaires sur le blog annonce de la version bêta de MySQL Connector/Python 1.0.5 .

Sur le tableau de bord, il y a un bon exemple montrant comment ajouter, modifier ou supprimer des données } avec la bibliothèque.

23
ndequeker

Si vous êtes sur MAC Installez-le globalement 

brew install mysql

puis chemin d'exportation comme celui-ci

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

enfin globalement ou dans votre venv 

pip install MySQL-Python
22
Zaman Afzal

Pour centos utilisateurs: 

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

puis

pip install MySQL-python


Si cette solution ne fonctionne pas , et une erreur de compilation gcc telle que:
_mysql.c:29:20: error: Python.h: No such file or directory

Vous devez spécifier le chemin de Python.h, comme ceci:
pip install --global-option=build_ext --global-option="-I/usr/include/python2.6" MySQL-python

22
lancerex

J'essayais d'installer mysql-python sur une instance Linux Amazon EC2 et je devais installer celles-ci:

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

Mais alors j'ai eu cette erreur:

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

Alors j'ai installé:

yum install python-devel

Et ça a fait l'affaire.

16
Emil Davtyan

Pour ceux qui utilisent MariaDB au lieu de MySQL, la solution consiste à installer le package libmariadbclient-dev et à créer un lien symbolique vers le fichier de configuration avec le nom correct.

Par exemple cela a fonctionné pour moi:

ln -s /usr/bin/mariadb_config /usr/bin/mysql_config
5
Alexandru Chirila

OS X Mavericks

En raison de modifications apportées aux outils de développement osx mavericks et xcode, il est possible que vous obteniez l'erreur lors de l'installation. 

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

donc utiliser:

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

Essayez Sudo apt-get build-dep python-mysqldb

4
KalamHavij

pour mariadb, installez lib mariadb client-dev au lieu de libmysqlclient-dev

Sudo apt-get install libmariadbclient-dev
2
Dinesh Sharma

Vous devriez d'abord installer la mysql:

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

Ensuite, vous pouvez installer mysqlclient:

pip install  mysqlclient
2
aircraft

parfois, l'erreur dépend de la cause réelle. Nous avons eu un cas où mysql-python a été installé via le paquet debian python-mysqldb. 

un développeur qui ne le savait pas, a accidentellement exécuté pip uninstall mysql-python et ensuite échoué à récupérer avec pip install mysql-python en donnant l'erreur ci-dessus.

pip uninstall mysql-python avait détruit le contenu du paquet Debian et, bien sûr, pip install mysql-python a échoué car le paquet debian ne nécessitait aucun fichier de développement.

la solution correcte dans ce cas était apt-get install --reinstall python-mysqldb qui a restauré mysql-python à son état d'origine.

1
eMBee

Votre chemin Sudo ne connaît pas votre chemin local ... passez en mode superutilisateur, ajoutez le chemin et installez-le à partir de là.

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

Et vous êtes opérationnel sur OSX. Vous avez maintenant un python global mis à jour.

0
Paul Kenjora

Séquence à suivre.

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 

Essayez ensuite d’installer à nouveau MYSQL-python. Cela a fonctionné pour moi

0
lakshman

Pour Linux

ça marche pour moi

yum install python-devel mysql-devel
0
penny chan

Avait un problème similaire essayant d'installer sur OS X Server 10.6.8. Voici ce que je devais faire ...

MySQL-python 1.2.4b4 (source) MySQL-5.6.19 (programme d'installation binaire) Python 2.7 (programme d'installation binaire) NOTE: Installation dans virtualenv ...

Décompressez le code source, ouvrez le fichier 'distributions_setup.py' et modifiez DEFAULT_VERSION pour utiliser la dernière version des outils de distribution, comme suit:

DEFAULT_VERSION = "0.6.49"

Sauvegarder. Ouvrez le fichier 'site.cfg' et décommentez le chemin d'accès à mysql_config afin qu'il ressemble à quelque chose comme ça (référencez votre propre chemin d'accès à 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

Maintenant, nettoie, compile et crée n'échouera pas avec l'erreur 'mysql_config' not found . J'espère que cela aidera quelqu'un d'autre à essayer d'utiliser ses anciennes xserves :-)

0
Brad Herdson

si vous installez MySQL-python dans votre env virtuel, vous devriez vérifier la version de pip, si la version est antérieure à 9.0.1, veuillez le mettre à jour

pip install --upgrade pip
0
Albert Chen

J'ai eu le même problème dans le Terraform: un conteneur léger. Il est basé sur Alpine.

Là vous devez installer mariadb-dev avec:

apk add mariadb-dev

Mais cela ne suffit pas car toutes les autres dépendances sont également manquées:

apk add python2 py2-pip gcc python2-dev musl-dev
0
Alex