python - mysqldb - pip install mysqlclient
pip instala mysql-python falla con EnvironmentError: mysql_config no encontrado (18)
Este es el error que recibo
(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
¿Qué puedo hacer para resolver esto?
OS X Mavericks
Debido a los cambios en las herramientas de desarrollo de xx de osx y xcode, puede obtener el error en la instalación
clang: error: unknown argument: ''-mno-fused-madd'' [-Wunused-command-line-argument-hard-error-in-future]
por lo tanto use:
sudo ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future pip install mysql-python
A veces el error depende de la causa real. tuvimos un caso en el que mysql-python se instaló a través del paquete debian python-mysqldb.
un desarrollador que no sabía esto, ejecutó accidentalmente pip uninstall mysql-python
y luego no se recuperó con pip install mysql-python
dio el error anterior.
pip uninstall mysql-python
había destruido el contenido del paquete debian y, por supuesto, pip install mysql-python
falló porque el paquete debian no necesitaba ningún archivo dev.
la solución correcta en ese caso fue apt-get install --reinstall python-mysqldb
que restauró mysql-python a su estado original.
Debes instalar el mysql
primero:
yum install python-devel mysql-community-devel -y
Entonces puedes instalar mysqlclient
:
pip install mysqlclient
Ejecutando Mac OSX Mountain Lion, simplemente ejecuté esto en la terminal para arreglarlo:
export PATH=$PATH:/usr/local/mysql/bin
Esta es la solución más rápida que encontré: la agrega a la ruta, pero creo que es mejor agregarla permanentemente (es decir, agregarla a /etc/paths
) si planea instalar MySQL-python en otro entorno.
Estaba intentando instalar mysql-python
en una instancia de Amazon EC2 Linux y tuve que instalar estos:
yum install mysql mysql-devel mysql-common mysql-libs gcc
Pero entonces tengo este error:
_mysql.c:29:20: fatal error: Python.h: No such file or directory
Así que instalé:
yum install python-devel
Y eso hizo el truco.
Para cualquier persona que use MariaDB en lugar de MySQL, la solución es instalar el paquete libmariadbclient-dev
y crear un enlace simbólico al archivo de configuración con el nombre correcto.
Por ejemplo, esto funcionó para mí:
ln -s /usr/bin/mariadb_config /usr/bin/mysql_config
Para usuarios de centos :
yum install -y mysql-devel python-devel python-setuptools
entonces
pip install MySQL-python
Si esta solución no funciona , imprima el error de compilación gcc como:
_mysql.c:29:20: error: Python.h: No such file or directory
Necesitas especificar la ruta de Python.h
, así:
pip install --global-option=build_ext --global-option="-I/usr/include/python2.6" MySQL-python
Parece que mysql_config no se encuentra en su sistema o el instalador no pudo encontrarlo. Asegúrese de que mysql_config esté realmente instalado.
Por ejemplo, en Debian / Ubuntu debes instalar el paquete:
sudo apt-get install libmysqlclient-dev
Tal vez el mysql_config no esté en su camino, será el caso cuando compile por sí mismo la suite mysql.
Actualización: para las versiones recientes de debian / ubuntu (a partir de 2018) es
sudo apt install default-libmysqlclient-dev
Prueba sudo apt-get build-dep python-mysqldb
Puede que haya varias respuestas para el problema anterior, a continuación se muestra una solución agregada.
Para Ubuntu:
$ sudo apt update
$ sudo apt install python-dev
$ sudo apt install python-MySQLdb
Para CentOS:
$ yum install python-devel mysql-devel
Puedes usar el MySQL Connector / Python
Instalación a través de PyPip
pip install mysql-connector-python
Puede encontrar más información en el blog de anuncios de MySQL Connector / Python 1.0.5 beta .
En Launchpad hay un buen ejemplo de cómo agregar, editar o eliminar datos con la biblioteca.
Si está en MAC instale esto globalmente
brew install mysql
luego exportar camino como este
export PATH=$PATH:/usr/local/mysql/bin
por ultimo globalmente o en tu venv
pip install MySQL-Python
Su ruta sudo no conoce su ruta local ... ingrese en modo superusuario, agregue la ruta e instálela desde allí.
sudo su
export PATH=$PATH:/usr/local/mysql/bin/
pip install mysql-python
exit
Y estás listo y funcionando en OSX. Ahora tienes un python global actualizado.
Tenía un problema similar al intentar instalar en OS X Server 10.6.8. Esto es lo que tenía que hacer. Utilizando:
MySQL-python 1.2.4b4 (fuente) MySQL-5.6.19 (instalador binario) Python 2.7 (instalador binario) NOTA: Instalando en virtualenv ...
Descomprima el código fuente, abra ''distrib_setup.py'' y edite DEFAULT_VERSION para usar la última versión de las herramientas de distribución, así:
DEFAULT_VERSION = "0.6.49"
Salvar. Abra el archivo ''site.cfg'' y elimine el comentario de la ruta a mysql_config para que se parezca (refiérase a su propia ruta 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
Ahora limpie, compile y haga no fallará con el error ''mysql_config'' no encontrado. Espero que esto ayude a alguien más tratando de hacer uso de sus antiguos xserves :-)
Tuve el mismo problema en el contenedor Terraform: light. Se basa en alpine.
Ahí tienes que instalar mariadb-dev con:
apk add mariadb-dev
Pero ese no es suficiente porque también se pierden todas las demás dependencias:
apk add python2 py2-pip gcc python2-dev musl-dev
para mariadb install lib mariadb client-dev en lugar de libmysqlclient-dev
sudo apt-get install libmariadbclient-dev
si instala MySQL-python en su entorno virtual, debe verificar la versión pip, si la versión es anterior a 9.0.1, actualícela
pip install --upgrade pip
apt-get install libmysqlclient-dev python-dev
Parecía hacer el truco.