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.

jbcedge
fuente
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)

derevo
fuente
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

Janek Olszak
fuente
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í

goksel
fuente
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í .

Evan Fosmark
fuente
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
34

Ubuntu:

sudo apt-get install python-mysqldb
panqueroso
fuente
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

A.Raouf
fuente
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+

alphiii
fuente
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
Venkat Kotra
fuente
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
Saurabh Chandra Patel
fuente
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
Kostyantyn
fuente
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
Alfred Huang
fuente
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
GrvTyagi
fuente
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

Forhad
fuente
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.

Afshin Mehrabani
fuente
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.

Om Sao
fuente
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

Justin Lee
fuente
3

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

Umair
fuente
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 :)

Daniel Lopez
fuente
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

Pythoner
fuente
éxito para virtualenv / python2.7
nguyên
1

En OSX, estos comandos me funcionaron

brew install mysql-connector-c 
pip install MySQL-python
Joe interior
fuente
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.

mtoloo
fuente
0

Win10 / Python27 esto funcionó para mí:

easy_install mysql-python

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

Cris
fuente
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

jfxninja
fuente
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
ScottK
fuente
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
nsssayom
fuente
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
Arsalan Ahmad Ishaq
fuente