Ningún módulo llamado MySQLdb


400

Estoy usando Python versión 2.5.4 e instalo MySQL versión 5.0 y Django. Django funciona bien con Python, pero no con MySQL. Lo estoy usando en Windows Vista.


43
pip install mysql-pythonopip install mysqlclient
Cœur

13
Tuve que instalar sudo apt-get install libmysqlclient-devpara que funcione.
b00r00x0

pip install mysqlclient trabajó en windows x64 10, You rock Cœur
Itachi Sama

8
Para Python3.6 sudo apt-get install libmysqlclient-devy pip3 install mysqlclientfuncionó para mí
Umair

Respuestas:


639

Debe usar uno de los siguientes comandos. Cuál depende del sistema operativo y el software que tenga y use.

  1. easy_install mysql-python (mix os)
  2. pip install mysql-python (mix os / python 2)
  3. pip install mysqlclient (mix os / python 3)
  4. apt-get install python-mysqldb (Linux Ubuntu, ...)
  5. cd / usr / ports / bases de datos / py-MySQLdb && make install clean (FreeBSD)
  6. yum instala MySQL-python (Linux Fedora, CentOS ...)

Para Windows, vea esta respuesta: Instale mysql-python (Windows)


1
Tuve que actualizar mi versión de setuptools para que coincida con mi versión actualizada de python en Mac OS antes de poder hacer que esto funcione.
Jonathan Adelson

44
y ¿qué tal instalar en virtualenv con python 3 en él? Solía: pip install mysql-python solo para obtener: ImportError: ningún módulo llamado ConfigParser
Iliyan Bobev

99
En Python 3, ConfigParser ha cambiado de nombre a configparser para cumplir con PEP 8. Parece que el paquete que está instalando no es compatible con Python 3. MySQL-python actualmente no es compatible con Python 3.
derevo

2
Recibo este error cuando uso 1 o 2 en OSX Yosemite:EnvironmentError: mysql_config not found
Mona Jalal

1
FYI: estoy en ubuntu 18 y estoy usando python3.7. Después de hacer "pip install mysqlclient", necesitaba hacer "sudo apt-get install libmysqlclient-dev" para una instalación exitosa.
Rashmi Singh

144

... y recuerda que no hay MySQLdb para python3.x

(Sé que la pregunta es sobre python2.x, pero Google califica esta publicación bastante alta)


EDITAR: Como se indica en los comentarios, hay una bifurcación de MySQLdb que agrega soporte para Python 3: github.com/PyMySQL/mysqlclient-python


Urghhgwaarrbl ... ahí va mi esperanza de usar python3 en mi aplicación Django
Don Cheadle

66
Afortunadamente, hay una selección de alternativas, muchas de las cuales usan la misma API: Python 3 y MySQL
Anthony Geoghegan

44
mysqlclient es una bifurcación de MySQLdb que funciona bien con Python 3.
ostrokach

@JanekOlszak No lo sabía, solo tardé un día en maldecir y golpear el teclado, hasta que lo leí y cambié a 2.7. Y adivina qué, todo funciona hunky-dory ~
3kstc

Mi viaje, esto -> esto -> esto . Y luego, finalmente pude instalarlo con éxito.
Daka

68

si tu versión de Python es 3.5, haz una pip install mysqlclient, otras cosas no funcionaron para mí


No sé por qué esta respuesta fue rechazada, pero mysqlclientes una bifurcación del proyecto MySQLdb, y puedo confirmar que me funcionó en Windows 10
Hamman Samuel

1
Trabajó para mí en Arch Linux
Luke Dupin

Trabajó en Ubuntu 16.10, Python 3.5.2+
tivadj

Trabajó en Ubuntu 14.04 Python 3.4.3
gpk27

Trabajó en macOS, Python 3.6.0
Miguel Mota

48

mysqldbes un módulo para Python que no viene preinstalado o con Django. Puedes descargar mysqldb aquí .


1
Intento instalar MySQL-python-1.2.1 Recibo el mensaje ImportError: ningún módulo llamado setuptools. Intento instalar setuptools, obtengo zlib no disponible, ¿no se supone que está incluido con python?
Pierre de LESPINAY

después de descargar el módulo, deberá editar el archivo site.cfg con la ruta correcta para mysql_config y la ejecuciónpython setup.py install
ntanase


25

Tenga en cuenta que esto no se ha probado para python 3.x

En CMD

pip install wheel
pip install pymysql

en settings.py

import pymysql
pymysql.install_as_MySQLdb()

Funciono conmigo


3
"pip3 install mysqlclient" resuelve el problema para python3.6 /
showmyroutes

¡No puedo votar esto lo suficiente! La única solución que funciona en Databricks ..
Foxan Ng

13
pip install PyMySQL

y luego agregue estas dos líneas a su Proyecto / Proyecto / init .py

import pymysql
pymysql.install_as_MySQLdb()

Funciona en WIN y Python 3.3+


Usé su sugerencia con éxito. El único cambio fue en el comando de importación: import pymysql Hubo un tipo.
Jorge

funcionó para mí en windows10, python 3.6, entorno virtual
Yikang Luo

1
Me encanta este truco. Aunque logré hacerlo funcionar sin él, tuve que incorporar un binario whql.
Ismael

Debería ser la respuesta correcta.
Jossie Calderón

12

Prueba esto.

pip install MySQL-python

2
¿Cómo se aplica esto específicamente a los entornos virtuales?
Tim

9

para ventana:

pip install mysqlclient pymysql

entonces:

importar pymysql pymysql.install_as_MySQLdb ()

para python 3 Ubuntu

sudo apt-get install -y python3-mysqldb

Ejecutar solo "pip install mysqlclient pymysql" en Windows 10 (Python 3.6.2) resolvió mi problema.
Rick Sarvas

8

Si pip install mysqlclient produce un error y usa Ubuntu, intente:

sudo apt-get install -y python-dev libmysqlclient-dev && sudo pip install mysqlclient

6

Encontré la misma situación bajo Windows, y busqué la solución.

Al ver esta publicación, instale mysql-python (Windows) .

Señala que instalar un entorno pip de este tipo es difícil, necesita muchas otras dependencias.

Pero finalmente sé que si usamos mysqlclientuna versión anterior 1.3.4, ya no necesita esos requisitos, así que intente:

pip install mysqlclient==1.3.4

4
  • Vaya a su directorio de proyectos con cd.
  • fuente / bin / active (active su env. si no anteriormente).
  • Ejecuta el comando easy_install MySQL-python

1
No funcionaModuleNotFoundError: No module named 'ConfigParser'
TomSawyer

4
pip install --user mysqlclient 

arriba funciona para mí como encanto para mí. En realidad, me sale el error de sqlalchemy Información medioambiental:

Python: 3.6, Ubuntu: 16.04, conda 4.6.8


3

Gracias a Derevo, pero creo que hay otra buena manera de hacerlo:

  1. Descargue e instale ActivePython
  2. Abrir símbolo del sistema
  3. Tipo pypm install mysql-python
  4. Lea las notas específicas de este paquete.

Creo que pypmes más poderoso y confiable que easy_install.


Parece que requiere una suscripción pagaCan't install mysql-python-1.2.3: requires Business Edition subscription
Jeremy S.

No lo creo. Recuerdo que lo instalé sin ningún problema.
Afshin Mehrabani

¿Por qué crees que pypm es más potente y confiable que easy_install? algún punto para apoyar eso? cualquier articulo / blogposts?
Sandeep Raju Prabhakar

2
Creo que esta sería la publicación del artículo / blog para respaldar eso: PI significa, vamos, usted apoya ese comentario con argumentos típicamente técnicos, no con alguien más que afirme lo mismo, pero que también puede no tener argumentos. Sin embargo, los argumentos serían buenos;)
Herbert

3

Para la versión Python 3+

instalar mysql-connectorcomo:

pip3 install mysql-connector 

Código de conexión de muestra Python DB:

import mysql.connector
db_connection = mysql.connector.connect(
  host="localhost",
  user="root",
  passwd=""
)
print(db_connection)

Salida:

> <mysql.connector.connection.MySQLConnection object at > 0x000002338A4C6B00>

Esto significa que la base de datos está conectada correctamente.


3

Personalmente, recomiendo usar en pymysqllugar de usar el conector MySQL genuino, que le proporciona una interfaz independiente de la plataforma y podría instalarse a través de él pip.

Y podría editar el esquema de URL de SQLAlchemy de esta manera: mysql+pymysql://username:passwd@host/database


3

Para Python 3.6+ sudo apt-get install libmysqlclient-devy pip3 install mysqlclient hace el truco


2

Si está ejecutando en Vista, es posible que desee consultar la pila de Bitnami Django. Es una pila todo en uno de Apache, Python, MySQL, etc., empaquetada con instaladores de plataforma cruzada de Bitrock para que sea realmente fácil comenzar. Se ejecuta en Windows, Mac y Linux. Ah, y es completamente gratis :)


Entonces, ¿por qué dijo "Si está ejecutando en Vista" si funcionará en más de Vista? Eso es engañoso y confuso.
Anthony

3
Para Anthony: Me pareció gracioso que el comentario más votado proporcionara instrucciones para Linux, FreeBSD y OSX, pero no para Vista, tal como se especifica en el póster
Daniel López,

2

He probado los métodos anteriores, pero todavía no hay ningún módulo llamado 'MySQLdb', finalmente, tengo éxito con

easy_install mysql-python

mi env es unbuntu 14.04


éxito para virtualenv / python2.7
nguyên

1

En OSX, estos comandos me funcionaron

brew install mysql-connector-c 
pip install MySQL-python

1

Si está utilizando SQLAlchemy y el error está en /site-packages/sqlalchemy/dialects/mysql/mysqldb.py:

from ...connectors.mysqldb import (
                        MySQLDBExecutionContext,
                        MySQLDBCompiler,
                        MySQLDBIdentifierPreparer,
                        MySQLDBConnector
                    )

por lo que puede haber perdido el conector mysqldb SQLAlchemyy la solución es reinstalar sqlalchemy después de instalar el mysql-pythonmódulo.


0

Win10 / Python27 esto funcionó para mí:

easy_install mysql-python

todos los demás 'pip install ...' fallaron con errores de dependencia


0

Nada de lo anterior funcionó para mí en una nueva instalación de Ubuntu 18.04 a través de la imagen de Docker.

Lo siguiente lo resolvió para mí:

apt-get install holland python3-mysqldb


0

En mi Mac con Catalina v10.15.2, tuve el siguiente conflicto de versión de MySQLdb:

ImportError: this is MySQLdb version (1, 2, 5, 'final', 1), but _mysql is version (1, 4, 6, 'final', 0)

Para resolverlo, hice lo siguiente:

pip uninstall MySQL-python
pip install MySQL-python

0

En Debian Buster, la siguiente solución funcionó para mí con python 3.7:

sudo apt-get install libmysqlclient-dev
sudo apt-get install libssl-dev
pip install mysqlclient

0

Estoy en ubuntu (linux) y lo que funcionó para mí fue

sudo apt-get install python3-dev default-libmysqlclient-dev build-essential

y finalmente

pip install mysqlclient
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.