installazione pip mysql-python non riesce con EnvironmentError: mysql_config non trovato


823

Questo è l'errore che ottengo

(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

Cosa posso fare per risolvere questo?


1
Vedi questo thread: [mysql_config non trovato durante l'installazione di mysqldb python interface] [1] ha funzionato per me :) [1]: stackoverflow.com/questions/7475223/…
Staccato

Sono un utente di MAC OS Risolvo questo problema con questa domanda stackoverflow.com/questions/50940302/…
PatricioS

Risposte:


1398

Sembra che mysql_config non sia presente sul tuo sistema o che il programma di installazione non sia riuscito a trovarlo. Assicurati che mysql_config sia installato davvero.

Ad esempio su Debian / Ubuntu è necessario installare il pacchetto:

sudo apt-get install libmysqlclient-dev

Forse mysql_config non è nel tuo percorso, lo sarà quando compili da solo la suite mysql.

Aggiornamento: per le versioni recenti di debian / ubuntu (a partire dal 2018) lo è

sudo apt install default-libmysqlclient-dev

24
Ciò ha ancora creato un errore per me. Ho usato apt-get install python-mysqldbinvece.
Jonatan Littke,

51
la mia esperienza 2c: ha sudo apt-get install libmysqlclient-devfunzionato per me, sudo apt-get install python-mysqldbnon ha aiutato
Anentropic

20
@JonatanLittke L'installazione di un tipo python-mysqldb globale va contro il punto di IMO di virtualenv.
fncomp

42
per Mariadb, ha sudo apt-get install libmariadbclient-devfatto il trucco.
yuvilio,

11
Se queste soluzioni non funzionano per te, potrebbe essere necessario installare python-dev:apt-get install python-dev
Anoyz

295

In Mac OS, ho semplicemente eseguito questo nel terminale per correggere:

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

Questa è la soluzione più rapida che ho trovato: la aggiunge al percorso, ma penso che sia meglio aggiungerla permanentemente (cioè aggiungerla a /etc/paths) se si prevede di installare MySQL-python in un altro ambiente.

(testato su OSX Mountain Lion)


6
Se stai usando lo stack MAMP di bitnami usa export PATH=$PATH:/Applications/mampstack-5.3.17-0/mysql/binSe stai usando questo stack MAMP commerciale , d'altra parte, disinstallalo e prendi quello bitnami perché è merda e non include le intestazioni mysql.
Timmmm,

3
Per rendere permanente il percorso aggiungilo in fondo a /etc/paths- dovrai accedere a una nuova finestra del terminale per accedere al nuovo percorso.
rojoca,

@Timmmm Soluzione piuttosto costosa dato che tutti i miei database sono in versione ufficiale: / c'è un altro modo per risolvere questo problema?
Volatil3,

1
Molto utile. Se stai usando XAMPP, usalo comeexport PATH=$PATH:/Applications/XAMPP/xamppfiles/bin
Kevin London,

10
Finalmente funziona grazie! anche se mysqlnon è installato, utilizzare brew install mysqldove si trova la posizione /usr/local/bin/mysql(o /usr/local/Cellar/mysql/VERSION/bin/se non è simbolicamente collegato).
Aziz Alto,

102
apt-get install libmysqlclient-dev python-dev

Sembrava fare il trucco.


2
sì, per me solo libmysqlclient-dev non era abbastanza, mancava anche python-dev.
Anderson Santos,

Su Ubuntu 12.04 (preciso) (32 bit) dopo l'aggiornamento sul posto da 10.04 (lucido) solo questo ha risolto questi errori. Specialmente l'ulteriore "python-dev"!
Ghiaccio

Ha funzionato anche per me - python-dev è stato l'ultimo pezzo del puzzle. Avevo già installato python-mysqldb, quindi non è assolutamente tutto ciò che serve.
Tim S.

Aggiornamento: per Python3 devi installare python3-dev.
Cezar,

Avevo bisogno di fare questo e installare anche gccper ottenere un'installazione corretta. Inoltre, probabilmente è meglio non fare python-dev, ma specificare la particolare versione, come python2.7-dev, python3.6-deve così via
Tim Tisdall

89

Forse ci sono varie risposte per il problema sopra, di seguito è una soluzione aggregata.

Per Ubuntu:

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

Per CentOS:

$ yum install python-devel mysql-devel

Grazie per la punta del centos. L'ho inseguito tutta la mattina.
Pete Magsig,

Forse vale la pena aggiungere python3-dev/python3-devel
Gergely M

36

Se sei su MAC, installalo a livello globale

brew install mysql

quindi esporta il percorso in questo modo

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

Che a livello globale o nel tuo ambiente, qualunque cosa ti piaccia

pip install MySQL-Python

Nota: globalmente per python3 in quanto il Mac può avere sia python2 che 3

pip3 install MySQL-Python

34

Puoi usare MySQL Connector / Python

Installazione tramite PyPip

pip install mysql-connector-python

Ulteriori informazioni sono disponibili sul blog degli annunci di MySQL Connector / Python 1.0.5 beta .

Su Launchpad c'è un buon esempio di come aggiungere, modificare o rimuovere i dati con la libreria.


3
Questa è l'unica cosa che ha funzionato per me quando ho rinunciato a mysqldb e al pasticcio di mysql_config mancante. Funziona bene per i miei scopi.
wh1tney,

@wjoba puoi spiegare ulteriormente? Sto installando py-mysql2pgsqle trovo l' errore della cosa mysql_config. Sto usando MAMP. Cosa fa il connettore mysqk?
Volatil3,

1
@ Volatil3 mysql-connettore-python ha funzionato bene come sostituto immediato di mysql-python per me. L'installazione del primo tramite pip ha funzionato senza problemi e si è sbarazzato dell'errore mysql_config perché (nelle parole dello sviluppatore) il connettore mysql è "Python puro e non ha bisogno di nessun altro software MySQL, quindi nessuna libreria C e compilazione". Spero che aiuti. Prova l'installazione menzionata in questa soluzione e verifica se l'errore persiste.
wh1tney,

Su Ubuntu 14/4, ottengo: Impossibile trovare alcun download che soddisfi i requisiti mysql-connettore-python
Timo

Questo comando ha funzionato per me dopo aver provato tutto il resto.
Orologi

27

Per gli utenti di centos :

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

poi

pip install MySQL-python


Se questa soluzione non funziona e stampa l'errore di compilazione di gcc come:
_mysql.c:29:20: error: Python.h: No such file or directory

Devi specificare il percorso di Python.h, in questo modo:
pip install --global-option=build_ext --global-option="-I/usr/include/python2.6" MySQL-python


1
Sembra che tu non abbia i file di inclusione giusti per i quali il binario Python pipsta installando. Python stesso fornisce normalmente la posizione include; la specifica manuale del percorso molto probabilmente punta alla versione errata .
Martijn Pieters

Ho dovuto fare un sudo pip install MySQL-pythonerrore a causa di un errore: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

Stavo cercando di installare mysql-pythonsu un'istanza di Amazon EC2 Linux e ho dovuto installare questi:

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

Ma poi ho ricevuto questo errore:

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

Quindi ho installato:

yum install python-devel

E quello ha fatto il trucco.


1
Ho usato: sudo yum install mysql mysql-devel mysql-common mysql-libs gcc al di fuori del mio virtualenv. Quindi, sono tornato al mio ambiente virtuale pip install mysql-pythone ho funzionato.
Tandy

1
dnf install mysql-devel gccera abbastanza per me, dipende dal resto
Jens Timmerman,

python-develora verrà visualizzato un errore, se si utilizza Python 2.7, provare questopython27-devel
Sizzling Code,

8

Per chiunque stia utilizzando MariaDB anziché MySQL, la soluzione è installare il libmariadbclient-devpacchetto e creare un collegamento simbolico al file di configurazione con il nome corretto.

Ad esempio, questo ha funzionato per me:

ln -s /usr/bin/mariadb_config /usr/bin/mysql_config

2
Questa è una risposta non apprezzata utile in ogni caso in cui si desidera connettersi a un socket di database specifico e noto. Mi ha aiutato a connettermi a un database mysql autonomo. La maggior parte delle soluzioni qui consiglia di reinstallare (o installare un secondo o terzo ... ecc.) Client msql!
7yl4r


6

OSX Mavericks

A causa di modifiche all'interno di osx mavericks e strumenti di sviluppo xcode, è possibile che venga visualizzato l'errore durante l'installazione

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

quindi utilizzare:

sudo ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future pip install mysql-python

6

Per Linux

questo funziona per me

yum install python-devel mysql-devel

5

per mariadb installa lib mariadb client-dev invece di libmysqlclient-dev

sudo apt-get install libmariadbclient-dev

Proprio quello di cui ho bisogno quando uso Debian 9 Stretch con MariaDB
anhtran il

4

È necessario installare il mysqlprimo:

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

Quindi è possibile installare mysqlclient:

pip install  mysqlclient

2

a volte l'errore dipende dalla causa effettiva. abbiamo avuto un caso in cui mysql-python è stato installato attraverso il pacchetto debian python-mysqldb.

uno sviluppatore che non lo sapeva, è corso per errore pip uninstall mysql-pythone poi non è riuscito a recuperare con pip install mysql-pythonl'errore sopra riportato.

pip uninstall mysql-pythonaveva distrutto il contenuto del pacchetto debian e ovviamente pip install mysql-pythonnon era riuscito perché il pacchetto debian non aveva bisogno di alcun file dev.

la soluzione corretta in quel caso era apt-get install --reinstall python-mysqldbche ripristinava mysql-python al suo stato originale.


2

Ho avuto lo stesso problema in Terraform: contenitore leggero. Si basa su alpino.

Lì devi installare mariadb-dev con:

apk add mariadb-dev

Ma quello non è abbastanza perché mancano anche tutte le altre dipendenze:

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

2

Sequenza da seguire.

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 

Quindi provare a installare nuovamente MYSQL-python. Ha funzionato per me


1

Si è verificato un problema simile nel tentativo di installare su OS X Server 10.6.8. Ecco cosa dovevo fare. usando:

MySQL-python 1.2.4b4 (sorgente) MySQL-5.6.19 (programma di installazione binario) Python 2.7 (programma di installazione binario) NOTA: Installazione in virtualenv ...

Decomprimi sorgente, apri "distribut_setup.py" e modifica DEFAULT_VERSION per utilizzare la versione più recente degli strumenti di distribuzione, in questo modo:

DEFAULT_VERSION = "0.6.49"

Salva. Apri il file 'site.cfg' e decommenta il percorso di mysql_config in modo che assomigli a qualcosa (fai riferimento al tuo percorso a 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

Ora clean, build e make non falliranno con l'errore "mysql_config" non trovato. Spero che questo aiuti qualcun altro a provare a utilizzare i loro vecchi server :-)


1

Il tuo percorso sudo non conosce il tuo percorso locale ... vai in modalità superutente, aggiungi il percorso e installalo da lì.

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

E sei attivo e funzionante su OSX. Ora hai un pitone globale aggiornato.



0

su MacOS Mojave, mysql_config si trova in / usr / local / bin / anziché in / usr / local / mysql / bin come indicato sopra, quindi non è necessario aggiungere nulla al percorso.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.