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.

jbcedge
la source
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)

derevo
la source
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

Janek Olszak
la source
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

goksel
la source
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 .

Evan Fosmark
la source
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
34

Ubuntu:

sudo apt-get install python-mysqldb
panckreous
la source
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

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

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

Forhad
la source
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.

Afshin Mehrabani
la source
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.

Om Sao
la source
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

Justin Lee
la source
3

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

Umair
la source
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 :)

Daniel Lopez
la source
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

Pythoner
la source
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
Joe Inner
la source
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.

mtoloo
la source
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

Cris
la source
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

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