Recibo un error extraño al intentar instalar mysqlclient en Ubuntu 16.04 Xenial con pip + Python 3.6 :
pip install mysqlclient
Producción:
_mysql.c:40:20: fatal error: Python.h: No such file or directory compilation terminated. error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
Siguiendo los requisitos de instalación , he intentado instalar las bibliotecas necesarias, pero hasta ahora no he tenido suerte.
sudo apt-get install python3-dev libmysqlclient-dev
¿Alguien sabe la solución para este problema?
Encontré el problema, parece que para instalar mysqlclient en python3.6 se requiere la biblioteca python3.6-dev .
Simplemente abra una terminal y ejecute el siguiente comando:
sudo apt-get install python3.6-dev libmysqlclient-dev
Es posible que obtenga el siguiente error al intentar instalar la biblioteca:
Reading state information... E: Unable to locate package python3.6-dev E: Couldn't find any package by glob 'python3.6-dev' E: Couldn't find any package by regex 'python3.6-dev'
Si ese es el caso, simplemente intente agregar primero el siguiente repositorio:
sudo add-apt-repository ppa:jonathonf/python-3.6 sudo apt-get update
Después de hacerlo, debería poder instalar los paquetes python3.6 y python3.6-dev .
Tuve problemas para instalar mysqlclient en python 3.6.3, así que bajé a la versión 3.6.2 y funcionó.
sudo apt-get install build-essential checkinstall sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev cd /usr/bin sudo wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz sudo tar xzf Python-3.6.2.tgz cd Python-3.6.2 sudo ./configure --enable-optimizations sudo make altinstall
python3.6 debe apuntar a 3.6.2
python --version # Python 3.6.2
ahora instale mysqlclient
python3.6 -m pip install mysqlclient
estoy recibiendo este error
/usr/bin/ld: cannot find -lssl /usr/bin/ld: cannot find -lcrypto collect2: error: ld returned 1 exit status error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
1 solución
Abra una nueva terminal y ejecute este comando
sudo apt-get install libssl-dev
después de eso instale mysqlclient
pip install mysqlclient
2 Solución
Instalar conector de base de datos MySQL
Lo primero que tendremos que hacer es instalar python3-dev. Puede instalar python3-dev ejecutando el siguiente comando:
sudo apt-get install python3-dev
Una vez que python3-dev está instalado, podemos instalar los encabezados y bibliotecas de desarrollo de Python y MySQL necesarios:
sudo apt-get install python3-dev libmysqlclient-dev
Luego, usaremos pip3 para instalar la biblioteca mysqlclient desde PyPi. Dado que nuestra versión de pip apunta a pip3, solo podemos usar pip.
pip install mysqlclient
Enlace de referencia: Cómo crear una aplicación Django y conectarla a una base de datos