Comment installer le module Python MySQLdb en utilisant pip?

310

Comment puis-je installer le module MySQLdb pour Python à l'aide de pip?

Marian
la source
11
Si vous cherchez à l'utiliser avec Python3 (par exemple, avec la dernière version de Django), vous aurez besoin de mysqlclient car MysqlDB ne prend pas en charge python3. Voir cette question
TD Smith
J'utilise mysqlclient avec Python 2.7 et MariaDB sans problème jusqu'à présent.
Dave Everitt

Réponses:

522

C'est facile à faire, mais difficile de se rappeler l'orthographe correcte:

pip install mysqlclient

Si vous avez besoin de versions 1.2.x (hérité de Python uniquement), utilisez pip install MySQL-python

Remarque: Certaines dépendances peuvent devoir être en place lors de l'exécution de la commande ci-dessus. Quelques conseils sur la façon de les installer sur diverses plates-formes:

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 cela échoue, essayez

brew install mysql
Marian
la source
26
Vous n'avez pas à vous souvenir du nom complet, vous pouvez utiliser pip search mysqlet trouver celui dont vous avez besoin dans la sortie.
WKPlus
12
@WKPlus: c'est vrai ... mais je l'ai pip search mysqldbtrouvé et je ne l' ai pas trouvé. Ainsi, je +1 cette réponse.
Dan H
7
@WKPlus en fait, c'est à peu près un vrai tracas de trouver le bon choix après une recherche pip de mysql
kommradHomer
9
Je dois faire une recherche sur Google à chaque fois, donc sacrément exaspérant
sleepycal
3
@DavidOkwii Lorsque vous n'êtes pas dans un virtualenv, sudo est requis. C'était peut-être votre problème.
Marian
138

À partir d'un nouveau système Ubuntu 14.04.2, ces deux commandes étaient nécessaires:

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

Le simple fait de procéder à l'installation par pip n'a pas fonctionné.

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

Ray Kiddy
la source
2
celui-ci a fonctionné, pour une raison quelconque, la simple installation de pip ne fonctionne pas
Dap
Dans Ubuntu 14.04, obtiendra une erreur "lever EnvironmentError ("% s not found "% (mysql_config.path,)", et le premier cmd a résolu le problème, merci, sauvez-moi un peu de temps
zhihong
Pour corriger l' error: command 'x86_64-linux-gnu-gcc' failed with exit status 1utilisationsudo apt-get install build-essential
FelikZ
Je me demande pourquoi cela est nécessaire. Une chose me vient à l'esprit. J'ai testé cela en installant uniquement et non en construisant. Avez-vous construit l'une des choses que vous avez installées plutôt que de simplement les installer?
Ray Kiddy
Cela devrait être une réponse acceptée bien sûr pour Ubuntu.
Roon13
23

Première

pip install pymysql

Mettez ensuite le code ci-dessous dans __init__.py( projectname/__init__.py)

import pymysql
pymysql.install_as_MySQLdb()

Mon environnement est (python3.5, django1.10) et cette solution fonctionne pour moi!

J'espère que cela t'aides!!

放 課後
la source
3
Woow, j'ai abandonné plus de 5 heures en essayant de résoudre ce problème sans succès. C'est la seule solution qui a fonctionné sur Ubuntu 16.04 / python 3.5 / Django 1.11. Merci de partager cela.
Paullo
cela ne fonctionne pas pour moi, mon environnement est python 3.7 et django 2.2. Sil te plait aide moi.
Rajen K Bhagat
Cela devrait être là-haut. Je cherche une solution depuis des heures. J'ai un virtualenv avec python 2.7 exécutant django 1.6. Je n'ai pas pu installer MySQL-python ni mysqlclient. Peu importe ce que j'ai essayé, j'obtenais une "erreur fatale: mysql.h". Celui-ci a fait l'affaire.
rolandsaven
22

J'ai rencontré des problèmes lors de l'installation de la version 64 bits de MySQLdb sous Windows via Pip (problème de compilation des sources) [version 32 bits installée ok]. Géré pour installer le MySQLdb compilé à partir du fichier .whl disponible sur http://www.lfd.uci.edu/~gohlke/pythonlibs/

Le fichier .whl peut ensuite être installé via pip en tant que document dans https://pip.pypa.io/en/latest/user_guide/#installing-from-wheels

Par exemple, si vous enregistrez dans C:/le, vous pouvez installer via

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

Suivi: si vous avez une version 64 bits de Python installée, vous souhaitez installer la version AMD 64 bits de MySQLdb à partir du lien ci-dessus [c'est-à-dire même si vous avez un processeur Intel]. Si vous essayez plutôt d'installer la version 32 bits, je pense que vous obtenez l'erreur de roue non prise en charge dans les commentaires ci-dessous.

kyrenia
la source
Échec total. Roue non supportée
M Hornbacher
3
J'avais besoin d'un client MySQL. pip install mysqlclient-1.3.7-cp27-none-win_amd64.whlfonctionne très bien.
arsenik
2
Je suis allé à http://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python pour télécharger le whlfichier (j'ai dl'd 64 bits pour correspondre à mon installation Python 64 bits). Fichier enregistré dans le c:/répertoire et exécuté pip install c:/MySQL_python-1.2.5-cp27-none-win_amd64.whlIl s'est installé en quelques secondes et était prêt à l'emploi. Trop facile!
Curtisp
A également fonctionné pour moi, car l'installation de pip par son nom échouait.
Artem Russakovskii
19

bien cela a fonctionné pour moi:

pip install mysqlclient

c'est pour python 3.x

kinsley kajiva
la source
3
Ceci est la première solution qui a fonctionné pour moi pour python 3.5 / django 1.11
Braden Holt
1
Vous pourriez rencontrer des problèmes avec un fichier mysql_config manquant. Voir stackoverflow.com/questions/7475223/…
zwep
7

J'ai essayé toutes les options mais je n'ai pas pu le faire fonctionner sur la plate-forme Redhat. J'ai fait ce qui suit pour le faire fonctionner: -

yum install MySQL-python -y

Une fois que le package a été installé a pu importer le module comme suit dans l'interpréteur: -

>>> import MySQLdb
>>> 
Ashwin
la source
La question était spécifiquement mentionnée pip. Quelle distribution utilisez-vous? Sur Fedora 24, cela fonctionne pour installer le module via pip: sudo dnf install python python-devel mysql-devel redhat-rpm-config gcc,sudo pip install MySQL-python
Marian
Je comprends que la question se fait via pip mais personnellement je n'ai pas pu la résoudre en utilisant pip. Par conséquent, je viens de partager ma solution de contournement qui a résolu le problème pour moi. J'utilise centos 6.8. la liste des pip ne montre rien de lié à mysql et quand je fais "pip installe MySQL-python" cela a jeté une erreur. Maintenant, chose intéressante, j'ai compris qu'une fois que nous avons installé via yum i: e "yum install MySQL-python", je peux importer MySQLdb. Une fois terminé avec l'installation de yum, j'ai pu installer via pip sans aucune erreur.
Ashwin
6

Accédez à pycharm puis accédez au paramètre par défaut -> pip (double-clic) - pymesqldb ..--> install - après l'installation, utilisez dans un programme comme celui-ci

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()
Java By Kiran
la source
3

Si vous utilisez Raspberry Pi [Raspbian OS]

Il faut d'abord installer la commande pip

apt-get install python-pip

Donc, il suffit d'installer séquentiellement

apt-get install python-dev libmysqlclient-dev

apt-get install python-pip

pip install MySQL-python
Tanakorn Lueangkajonvit
la source
La framboise n'est pas mentionnée dans la question
Héctor Valverde Pareja
3

entrez la description de l'image ici

Vous pouvez accéder à ce site Web pour télécharger le package.

bob90937
la source
3

Si vous ne parvenez pas à installer mysqlclient, vous pouvez également installer pymysql :

pip install pymysql

Cela fonctionne de la même manière que MySqldb . Après cela, utilisez pymysql partout au lieu de MySQLdb

Aniket Babhulkar
la source
Cela devrait être la réponse.
JayJay123
2

J'ai aussi eu le même problème. Suivez ces étapes si vous êtes sous Windows. Allez à: 1.Mon ordinateur 2.Propriétés du système 3.Paramètres système avancés 4. Sous l'onglet "Avancé", cliquez sur le bouton qui dit "Variables d'environnement" 5. Ensuite, sous Variables système, vous devez ajouter / modifier les variables suivantes: PYTHONPATH et Path. Voici un aperçu de ce à quoi mes variables ressemblent: chemin python:

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

chemin:

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

Voir ce lien pour référence

d-coder
la source
1

La réponse ci-dessus est excellente, mais il peut y avoir des problèmes lorsque nous utilisons pip pour installer MySQL-python dans Windows

par exemple, il a besoin de certains fichiers associés à Visual Stdio Une solution installe VS2008 ou 2010 …… Évidemment, cela coûte trop cher.

Une autre façon est la réponse de @ bob90937. Je suis ici pour faire quelque chose à ajouter.

avec http://www.lfd.uci.edu/~gohlke/pythonlibs , vous pouvez télécharger de nombreux binaires Windows de nombreux packages d'extensions open source scientifiques pour la distribution officielle CPython du langage de programmation Python.

Retour au sujet, nous pouvons choisir MySQL-python (py2) ou Mysqlclient (py3) et utiliser pip install pour installer. cela nous donne une grande commodité!

Vaste
la source
1

Pour Python3, je devais faire ceci:

python3 -m pip install MySQL
Frank Harb
la source
1

sur RHEL 7:

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

sudo /bin/pip2 install MySQL-python

filaire00
la source
1

Si Windows est installé sur votre système, tapez la commande suivante sur cmd:

pip install mysql-connector

si la commande ci-dessus ne fonctionne pas, essayez d'utiliser:

pip install mysql-connector-python

Maintenant, si les commandes ci-dessus ne font pas le travail, essayez d'utiliser:

pip install mysql-connector-python-rf

Voilà, vous êtes prêt à partir maintenant.

kesari007
la source
1

Beaucoup des réponses données ici sont assez déroutantes, donc je vais essayer de le dire simplement. Cela m'a aidé à installer ce

pip install pymysql

puis utilisez la commande suivante dans le fichier python

import pymysql as MySQLdb

De cette façon, vous pouvez utiliser MySQLdb sans aucun problème.

DovaX
la source
0

Si pip3 ne fonctionne pas, vous pouvez essayer:

sudo apt install python3-mysqldb
Marc Gottlieb
la source
Pas une très bonne réponse. Vous supposez que la version Python est 3 et que le système d'exploitation est Debian / Ubuntu, mais vous ne le savez pas. Veuillez attendre que l'auteur ajoute plus de détails.
phd
0

Mon environnement est:

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

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

travaille pour moi.

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()
Павел П
la source
0

en fait, suivez la réponse de @Nick T ne fonctionne pas pour moi, j'essaie de apt-get install python-mysqldbtravailler pour moi

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
>>> 
vickey wu
la source