¿Cómo instalar el módulo Python MySQLdb usando pip?


310

¿Cómo puedo instalar el módulo MySQLdb para Python usando pip?


11
Si está buscando usar esto con Python3 (por ejemplo, con la versión más reciente de Django) necesitará mysqlclient ya que MysqlDB no es compatible con python3. Ver esta pregunta
TD Smith

Estoy usando mysqlclient con Python 2.7 y MariaDB sin problemas hasta ahora.
Dave Everitt

Respuestas:


522

Es fácil de hacer, pero difícil recordar la ortografía correcta:

pip install mysqlclient

Si necesita versiones 1.2.x (solo Python heredado), use pip install MySQL-python

Nota: Algunas dependencias pueden tener que estar en su lugar al ejecutar el comando anterior. Algunos consejos sobre cómo instalarlos en varias plataformas:

Ubuntu 14, Ubuntu 16, Debian 8.6 (jessie)

sudo apt-get install python-pip python-dev libmysqlclient-dev

Fedora 24:

sudo dnf install python python-devel mysql-devel redhat-rpm-config gcc

Mac OS

brew install mysql-connector-c

si eso falla, intente

brew install mysql

26
No tiene que recordar el nombre completo, puede usar pip search mysqly encontrar el que necesita en la salida.
WKPlus

12
@WKPlus: cierto ... pero lo encontré pip search mysqldby no lo encontré. Por lo tanto, hago +1 esta respuesta.
Dan H

77
@WKPlus realidad es más o menos una verdadera molestia para averiguar la decisión correcta después de una búsqueda de pepita de MySQL
kommradHomer

99
Tengo que google esto cada vez, tan maldito infurating
sleepycal

3
@DavidOkwii Cuando no estás dentro de un virtualenv, se requiere sudo. Ese podría haber sido tu problema.
Marian

138

A partir de un nuevo sistema Ubuntu 14.04.2, se necesitaban estos dos comandos:

 apt-get install python-dev libmysqlclient-dev
 pip install MySQL-python

Simplemente hacer la "instalación de pip" por sí solo no funcionó.

Desde http://codeinthehole.com/writing/how-to-set-up-mysql-for-python-on-ubuntu/


2
este funcionó, por alguna razón la simple instalación de pip no funciona limpia en ubuntu
Dap

En ubuntu 14.04, recibirá un error "raise EnvironmentError ("% s no encontrado "% (mysql_config.path,)", y el primer cmd solucionó el problema, gracias,
ahórreme

Para arreglar el error: command 'x86_64-linux-gnu-gcc' failed with exit status 1usosudo apt-get install build-essential
FelikZ

Me pregunto por qué se necesita esto. Se me ocurre una cosa. Probé esto instalando solo y no construyendo. ¿Construyó alguna de las cosas que instaló en lugar de solo instalarlas?
Ray Kiddy

Esta respuesta debe ser aceptada, por supuesto, para Ubuntu.
Roon13

23

primero

pip install pymysql

Luego ponga el siguiente código en __init__.py( projectname/__init__.py)

import pymysql
pymysql.install_as_MySQLdb()

¡Mi entorno es (python3.5, django1.10) y esta solución funciona para mí!

¡¡Espero que esto ayude!!


3
Woow, he renunciado a más de 5 horas tratando de arreglar esto sin éxito. Esta es la única solución que funcionó en Ubuntu 16.04 / python 3.5 / Django 1.11. Gracias por compartir esto.
Paullo

esto no funciona para mí, mi entorno es python 3.7 y django 2.2. Por favor, ayúdame.
Rajen K Bhagat el

Esto debería estar ahí arriba. He estado buscando una solución durante horas. Tengo un virtualenv con python 2.7 ejecutando django 1.6. No pude instalar MySQL-python ni mysqlclient. No importaba lo que intentara, recibía un "error fatal: mysql.h". Este hizo el truco.
rolandsaven

22

Tuve problemas para instalar la versión de 64 bits de MySQLdb en Windows a través de Pip (fuentes de compilación problemáticas) [la versión de 32 bits está bien instalada]. Logré instalar el MySQLdb compilado del archivo .whl disponible en http://www.lfd.uci.edu/~gohlke/pythonlibs/

El archivo .whl se puede instalar a través de pip como documento en https://pip.pypa.io/en/latest/user_guide/#installing-from-wheels

Por ejemplo, si guarda en C:/el puede instalar a través de

pip install c:/MySQL_python-1.2.5-cp27-none-win_amd64.whl

Seguimiento: si tiene instalada una versión de Python de 64 bits, entonces desea instalar la versión AMD de 64 bits de MySQLdb desde el enlace anterior [es decir, incluso si tiene un procesador Intel]. Si en su lugar intenta instalar la versión de 32 bits, creo que obtiene el error de rueda no compatible en los comentarios a continuación.


Fallo total Rueda no admitida
M Hornbacher

3
Necesitaba un cliente MySQL. pip install mysqlclient-1.3.7-cp27-none-win_amd64.whltrabajando muy bien
arsenik

2
Fui a http://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python para descargar el whlarchivo (hice 64 bits para que coincida con mi instalación de Python de 64 bits). Guarde el archivo en el c:/directorio y lo ejecuté. pip install c:/MySQL_python-1.2.5-cp27-none-win_amd64.whlSe instaló en segundos y estaba listo. ¡Demasiado fácil!
Curtisp

También funcionó para mí, ya que la instalación de pip por nombre estaba fallando.
Artem Russakovskii


7

Probé toda la opción pero no pude hacer que funcionara en la plataforma Redhat. Hice lo siguiente para que funcione: -

yum install MySQL-python -y

Una vez que se instaló el paquete, se pudo importar el módulo de la siguiente manera en el intérprete: -

>>> import MySQLdb
>>> 

La pregunta se menciona específicamente pip. ¿Qué distribución estás usando? En Fedora 24, esta obra para instalar el módulo a través de pepita: sudo dnf install python python-devel mysql-devel redhat-rpm-config gcc,sudo pip install MySQL-python
Marian

Entiendo que la pregunta es a través de pip, pero personalmente no pude resolverla usando pip. Por lo tanto, acabo de compartir mi solución que solucionó el problema para mí. Estoy usando centos 6.8. pip list no muestra nada relacionado con mysql y cuando hago "pip install MySQL-python" arrojó un error. Ahora, curiosamente, descubrí que una vez que instalamos a través de yum i: e "yum install MySQL-python" puedo importar MySQLdb. También una vez que terminé con la instalación de yum pude instalar a través de pip sin ningún error.
Ashwin

6

Vaya a pycharm y luego vaya a la configuración predeterminada -> pip (doble clic) - pymsqldb ..--> install --después de instalar el uso en un programa como este

import pymysql as MySQLdb

# Open database connection
db = MySQLdb.connect("localhost","root","root","test" )

# prepare a cursor object using cursor() method
cursor = db.cursor()

# execute SQL query using execute() method.
cursor.execute("show tables")

# Fetch a single row using fetchone() method.
data = cursor.fetchall()
print (data)

# disconnect from server
db.close()

3

Si está utilizando Raspberry Pi [Raspbian OS]

Es necesario instalar el comando pip al principio

apt-get install python-pip

De modo que solo instale con frecuencia

apt-get install python-dev libmysqlclient-dev

apt-get install python-pip

pip install MySQL-python

La frambuesa no se menciona en la pregunta
Héctor Valverde Pareja


3

Si no puede instalar mysqlclient , también puede instalar pymysql :

pip install pymysql

Esto funciona igual que MySqldb . Después de eso, use pymysql por todas partes en lugar de MySQLdb


Esta debería ser la respuesta.
JayJay123

2

También tuve el mismo problema. Sigue estos pasos si estás en Windows. Vaya a: 1.Mi computadora 2. Propiedades del sistema 3.Advance la configuración del sistema 4. En la pestaña "Avanzado", haga clic en el botón que dice "Variables de entorno" 5. Luego, en Variables del sistema, debe agregar / cambiar las siguientes variables: PYTHONPATH y camino. Aquí hay una pasta de cómo se ven mis variables: ruta de Python:

C:\Python27;C:\Python27\Lib\site-packages;C:\Python27\Lib;C:\Python27\DLLs;C:\Python27\Lib\lib-tk;C:\Python27\Scripts

camino:

C:\Program Files\MySQL\MySQL Utilities 1.3.5\;C:\Python27;C:\Python27\Lib\site-packages;C:\Python27\Lib;C:\Python27\DLLs;C:\Python27\Lib\lib-tk;C:\Python27\Scripts

Vea este enlace para referencia


1

La respuesta anterior es excelente, pero puede haber algunos problemas cuando usamos pip para instalar MySQL-python en Windows

por ejemplo, necesita algunos archivos que estén asociados con Visual Stdio . Una solución es instalar VS2008 o 2010 ... Obviamente, cuesta demasiado.

Otra forma es la respuesta de @ bob90937. Estoy aquí para hacer algo para agregar.

con http://www.lfd.uci.edu/~gohlke/pythonlibs , puede descargar muchos binarios de Windows de muchos paquetes de extensión científica de código abierto para la distribución oficial de CPython del lenguaje de programación Python.

Volviendo al tema, podemos elegir MySQL-python (py2) o Mysqlclient (py3) y usar pip install para instalar. nos da una gran comodidad!


1

Para Python3 necesitaba hacer esto:

python3 -m pip install MySQL


1

en RHEL 7:

sudo yum install yum-utils mariadb-devel python-pip python-devel gcc

sudo /bin/pip2 install MySQL-python


1

Si tiene Windows instalado en su sistema, escriba el siguiente comando en cmd:

pip install mysql-connector

si el comando anterior no funciona, intente usar:

pip install mysql-connector-python

Ahora, si los comandos anteriores no hacen el trabajo, intente usar:

pip install mysql-connector-python-rf

Eso es todo lo que está bien para ir ahora.


1

Muchas de las respuestas dadas aquí son bastante confusas, así que intentaré decirlo de manera simple. Me ayudó a instalar esto

pip install pymysql

y luego use el siguiente comando en el archivo python

import pymysql as MySQLdb

De esta manera, puede usar MySQLdb sin ningún problema.


0

Si pip3 no funciona, puedes probar:

sudo apt install python3-mysqldb

No muy buena respuesta. Asume que la versión de Python es 3 y el sistema operativo es Debian / Ubuntu, pero no lo sabe. Espere hasta que el autor agregue más detalles.
phd

0

Mi entorno es:

  • Windows 10 Pro,
  • Python 3.7 (python-3.7.1-amd64.exe),
  • MySQL 8.0 (mysql-installer-web-community-8.0.13.0.msi)

pip install mysqlclient-1.3.13-cp37-cp37m-win_amd64.whl

funciona para mi.

import MySQLdb, sys


# --------------------------------------------------
# Connect to MySQL
# --------------------------------------------------
try:
    db = MySQLdb.connect(host="localhost", user="user", passwd="pass", db="database", charset='cp1251')
except MySQLdb.Error as e:
    print ("Error %d: %s" % (e.args[0], e.args[1]))
    sys.exit()

# Creating cursor 
cursor = db.cursor()

0

en realidad, sigue la respuesta de @Nick T no funciona para mí, intento apt-get install python-mysqldbtrabajar para mí

root@2fb0da64a933:/home/test_scrapy# apt-get install python-mysqldb
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  libmariadbclient18 mysql-common
Suggested packages:
  default-mysql-server | virtual-mysql-server python-egenix-mxdatetime python-mysqldb-dbg
The following NEW packages will be installed:
  libmariadbclient18 mysql-common python-mysqldb
0 upgraded, 3 newly installed, 0 to remove and 29 not upgraded.
Need to get 843 kB of archives.
After this operation, 4611 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://deb.debian.org/debian stretch/main amd64 mysql-common all 5.8+1.0.2 [5608 B]
Get:2 http://deb.debian.org/debian stretch/main amd64 libmariadbclient18 amd64 10.1.38-0+deb9u1 [785 kB]
Get:3 http://deb.debian.org/debian stretch/main amd64 python-mysqldb amd64 1.3.7-1.1 [52.1 kB]                    
Fetched 843 kB in 23s (35.8 kB/s)                                                                                 
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package mysql-common.
(Reading database ... 13223 files and directories currently installed.)
Preparing to unpack .../mysql-common_5.8+1.0.2_all.deb ...
Unpacking mysql-common (5.8+1.0.2) ...
Selecting previously unselected package libmariadbclient18:amd64.
Preparing to unpack .../libmariadbclient18_10.1.38-0+deb9u1_amd64.deb ...
Unpacking libmariadbclient18:amd64 (10.1.38-0+deb9u1) ...
Selecting previously unselected package python-mysqldb.
Preparing to unpack .../python-mysqldb_1.3.7-1.1_amd64.deb ...
Unpacking python-mysqldb (1.3.7-1.1) ...
Setting up mysql-common (5.8+1.0.2) ...
update-alternatives: using /etc/mysql/my.cnf.fallback to provide /etc/mysql/my.cnf (my.cnf) in auto mode
Setting up libmariadbclient18:amd64 (10.1.38-0+deb9u1) ...
Processing triggers for libc-bin (2.24-11+deb9u3) ...
Setting up python-mysqldb (1.3.7-1.1) ...
root@2fb0da64a933:/home/test_scrapy# python 
Python 2.7.13 (default, Nov 24 2017, 17:33:09) 
[GCC 6.3.0 20170516] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import MySQLdb
>>> 
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.