Aucun module nommé MySQLdb


400

J'utilise Python version 2.5.4 et j'installe MySQL version 5.0 et Django. Django fonctionne bien avec Python, mais pas MySQL. Je l'utilise dans Windows Vista.


43
pip install mysql-pythonoupip install mysqlclient
Cœur le

13
J'ai dû installer sudo apt-get install libmysqlclient-devpour le faire fonctionner.
b00r00x0

pip install mysqlclient travaillé sur windows x64 10, You rock Cœur
Itachi Sama

8
Pour Python3.6 sudo apt-get install libmysqlclient-devet a pip3 install mysqlclienttravaillé pour moi
Umair

Réponses:


639

Vous devez utiliser l'une des commandes suivantes. Lequel dépend du système d'exploitation et des logiciels que vous avez et utilisez.

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

Pour Windows, voyez cette réponse: Installez mysql-python (Windows)


1
J'ai dû mettre à jour ma version de setuptools pour correspondre à ma version mise à jour de python sur Mac OS avant de pouvoir le faire fonctionner.
Jonathan Adelson

4
et que diriez-vous d'installer sur virtualenv avec python 3 dessus? J'ai utilisé: pip install mysql-python uniquement pour obtenir: ImportError: Aucun module nommé ConfigParser
Iliyan Bobev

9
Dans Python 3, ConfigParser a été renommé en configparser pour la conformité PEP 8. Il semble que le paquet que vous installez ne prend pas en charge Python 3. MySQL-python ne prend pas actuellement en charge Python 3.
derevo

2
Je reçois cette erreur lorsque j'utilise 1 ou 2 dans OSX Yosemite:EnvironmentError: mysql_config not found
Mona Jalal

1
Pour info - je suis sur ubuntu 18 et j'utilise python3.7. Après avoir fait "pip install mysqlclient", je devais faire "sudo apt-get install libmysqlclient-dev" pour une installation réussie.
Rashmi Singh

144

... et rappelez-vous qu'il n'y a pas de MySQLdb pour python3.x

(Je sais que la question concerne python2.x mais google note ce post assez haut)


EDIT: Comme indiqué dans les commentaires, il y a un fork de MySQLdb qui ajoute le support de Python 3: github.com/PyMySQL/mysqlclient-python


Urghhgwaarrbl ... voilà mon espoir d'utiliser python3 dans mon application Django
Don Cheadle

6
Heureusement, il existe une sélection d'alternatives, dont beaucoup utilisent la même API: Python 3 et MySQL
Anthony Geoghegan

4
mysqlclient est un fork de MySQLdb qui fonctionne bien avec Python 3.
ostrokach

@JanekOlszak Je ne savais pas cela - cela n'a pris qu'une journée de beaucoup de jurons et de coups sur le clavier - jusqu'à lire ceci et passer à 2.7. Et devinez quoi, tout fonctionne Hunky-Dory ~
3kstc

Mon voyage, ceci -> ceci -> ceci . Et puis, j'ai finalement réussi à l'installer.
daka

68

si votre version python est 3.5, faites un pip install mysqlclient, d'autres choses n'ont pas fonctionné pour moi


Je ne sais pas pourquoi cette réponse a été rejetée, mais mysqlclientc'est une fourchette du projet MySQLdb, et je peux confirmer que cela a fonctionné pour moi sur Windows 10
Hamman Samuel

1
A travaillé pour moi sur Arch Linux
Luke Dupin

A travaillé sur Ubuntu 16.10, Python 3.5.2+
tivadj

A travaillé sur Ubuntu 14.04 Python 3.4.3
gpk27

A travaillé sur macOS, Python 3.6.0
Miguel Mota

48

mysqldbest un module pour Python qui n'est pas livré pré-installé ou avec Django. Vous pouvez télécharger mysqldb ici .


1
Essayer d'installer MySQL-python-1.2.1 J'obtiens le message ImportError: Aucun module nommé setuptools En essayant d'installer setuptools, j'obtiens zlib non disponible n'est-il pas censé être fourni avec python?
Pierre de LESPINAY

après avoir téléchargé le module, vous devrez éditer le fichier site.cfg avec le bon chemin pour mysql_config et le runpython setup.py install
ntanase


25

Notez que cela n'est pas testé pour python 3.x

Dans CMD

pip install wheel
pip install pymysql

dans settings.py

import pymysql
pymysql.install_as_MySQLdb()

Ça a marché avec moi


3
"pip3 install mysqlclient" résout le problème pour python3.6 /
showmyroutes

Je ne peux pas voter assez pour ça! La seule solution qui fonctionne sur Databricks ..
Foxan Ng

13
pip install PyMySQL

puis ajoutez ces deux lignes à votre projet / projet / init .py

import pymysql
pymysql.install_as_MySQLdb()

Fonctionne sur WIN et python 3.3+


J'ai utilisé votre suggestion avec succès. Seul le changement était dans la commande d'importation: import pymysql Il y avait au type.
Jorge

a travaillé pour moi sur windows10, python 3.6, environnement virtuel
Yikang Luo

1
J'adore ce hack. Bien que j'aie réussi à le faire fonctionner sans qu'il ait encore dû incorporer un binaire whql.
Ishmael

Devrait être la bonne réponse.
Jossie Calderon

12

Essaye ça.

pip install MySQL-python

2
Comment cela s'applique-t-il spécifiquement aux environnements virtuels?
Tim

9

pour la fenêtre:

pip install mysqlclient pymysql

puis:

import pymysql pymysql.install_as_MySQLdb ()

pour python 3 Ubuntu

sudo apt-get install -y python3-mysqldb

L'exécution de "pip install mysqlclient pymysql" sous Windows 10 (Python 3.6.2) a résolu mon problème.
Rick Sarvas

8

Si pip install mysqlclient produit une erreur et que vous utilisez Ubuntu, essayez:

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

6

J'ai rencontré la même situation sous Windows et j'ai cherché la solution.

Voir cette publication Installez mysql-python (Windows) .

Il souligne que l'installation d'un tel environnement pip est difficile, nécessite de nombreuses autres dépendances.

Mais je sais enfin que si nous utilisons mysqlclientune version jusqu'à 1.3.4, il n'a plus besoin de cette configuration, alors essayez:

pip install mysqlclient==1.3.4

4
  • Accédez à votre répertoire de projet avec cd .
  • source / bin / activate (activez votre env. sinon précédemment).
  • Exécutez la commande easy_install MySQL-python

1
Ne fonctionne pasModuleNotFoundError: No module named 'ConfigParser'
TomSawyer

4
pip install --user mysqlclient 

ci-dessus fonctionne pour moi comme le charme pour moi. Je fais l'erreur de sqlalchemy en fait. Informations sur l'environnement:

Python: 3.6, Ubuntu: 16.04, conda 4.6.8


3

Merci à derevo mais je pense qu'il y a une autre bonne façon de procéder:

  1. Téléchargez et installez ActivePython
  2. Ouvrir l'invite de commande
  3. Type pypm install mysql-python
  4. Lisez les notes spécifiques à ce package.

Je pense que pypmc'est plus puissant et fiable que easy_install.


Il semble que cela nécessite un abonnement payantCan't install mysql-python-1.2.3: requires Business Edition subscription
Jeremy S.

Je ne pense pas. Je me souviens que je l'ai installé sans problème.
Afshin Mehrabani

pourquoi pensez-vous que pypm est plus puissant et fiable que easy_install? des points pour soutenir cela? des articles / articles de blog?
Sandeep Raju Prabhakar

2
Je pense que ce serait l'article / le blog pour soutenir cela: PI signifie, allez, vous soutenez un tel commentaire avec des arguments typiquement techniques, pas avec quelqu'un d'autre qui prétend la même chose, mais peut aussi ne pas avoir d'arguments. Cependant, les arguments seraient bien;)
Herbert

3

Pour la version Python 3+

installer en mysql-connectortant que:

pip3 install mysql-connector 

Exemple de code de connexion Python DB:

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

Production:

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

Cela signifie que la base de données est correctement connectée.


3

Je recommande personnellement d'utiliser pymysqlau lieu d'utiliser le connecteur MySQL authentique, qui vous fournit une interface indépendante de la plate-forme et qui peut être installée via pip.

Et vous pouvez modifier le schéma d'URL SQLAlchemy comme ceci: mysql+pymysql://username:passwd@host/database


3

Pour Python 3.6+ sudo apt-get install libmysqlclient-devet pip3 install mysqlclient fait l'affaire


2

Si vous utilisez Vista, vous voudrez peut-être vérifier la pile Bitnami Django. Il s'agit d'une pile tout-en-un d'Apache, de Python, de MySQL, etc., empaquetée avec des installateurs multiplateformes Bitrock pour faciliter le démarrage. Il fonctionne sur Windows, Mac et Linux. Oh, et c'est complètement gratuit :)


Alors pourquoi avez-vous dit "Si vous utilisez Vista" si cela fonctionne sur plus de Vista? C'est trompeur et déroutant.
Anthony

3
À Anthony: Je viens de trouver drôle que le commentaire le plus voté fournisse des instructions pour Linux, FreeBSD et OSX mais pas pour Vista comme spécifié par l'affiche
Daniel Lopez

2

J'ai essayé les méthodes ci-dessus, mais toujours aucun module nommé 'MySQLdb', enfin, je réussis avec

easy_install mysql-python

mon env est unbuntu 14.04


succès pour virtualenv / python2.7
nguyên

1

Sur OSX, ces commandes ont fonctionné pour moi

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

1

Si vous utilisez SQLAlchemy et que l'erreur se trouve dans /site-packages/sqlalchemy/dialects/mysql/mysqldb.py:

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

donc vous avez peut-être manqué le connecteur mysqldb pour SQLAlchemyet la solution est de réinstaller sqlalchemy après avoir installé le mysql-pythonmodule.


0

Win10 / Python27, cela a fonctionné pour moi:

easy_install mysql-python

tous les autres 'pip install ...' ont échoué avec des erreurs de dépendance


0

Rien de ce qui précède n'a fonctionné pour moi sur une nouvelle installation d'Ubuntu 18.04 via l'image docker.

Ce qui suit l'a résolu pour moi:

apt-get install holland python3-mysqldb


0

Sur mon Mac exécutant Catalina v10.15.2, j'ai eu le conflit de version MySQLdb suivant:

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

Pour le résoudre, j'ai fait ce qui suit:

pip uninstall MySQL-python
pip install MySQL-python

0

Sur Debian Buster, la solution suivante a fonctionné pour moi avec python 3.7:

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

0

Je suis à Ubuntu (Linux) et ce qui a fonctionné pour moi était

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

puis enfin

pip install mysqlclient
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.