Wie installiere ich das Python MySQLdb-Modul mit pip?

310

Wie kann ich die MySQLdb installieren ? Modul für Python mit pip ?

Marian
quelle
11
Wenn Sie dies mit Python3 verwenden möchten (z. B. mit der neuesten Version von Django), benötigen Sie mysqlclient, da MysqlDB Python3 nicht unterstützt. Siehe diese Frage
TD Smith
Ich verwende mysqlclient mit Python 2.7 und MariaDB ohne Probleme.
Dave Everitt

Antworten:

522

Es ist einfach, aber schwer, sich an die richtige Schreibweise zu erinnern:

pip install mysqlclient

Wenn Sie 1.2.x-Versionen benötigen (nur Legacy-Python), verwenden Sie pip install MySQL-python

Hinweis: Beim Ausführen des obigen Befehls müssen möglicherweise einige Abhängigkeiten vorhanden sein. Einige Hinweise zur Installation auf verschiedenen Plattformen:

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

Wenn dies fehlschlägt, versuchen Sie es

brew install mysql
Marian
quelle
26
Sie müssen sich nicht den ganzen Namen merken, sondern können den gewünschten Namen pip search mysqlin der Ausgabe verwenden und finden.
WKPlus
12
@WKPlus: richtig ... aber ich habe es gefunden pip search mysqldbund nicht gefunden. Somit habe ich +1 diese Antwort.
Dan H
7
@WKPlus eigentlich ist es ziemlich mühsam, nach einer Pip-Suche von mysql
kommradHomer
9
Ich muss dies jedes Mal googeln, so verdammt wütend
schläfrig
3
@DavidOkwii Wenn Sie sich nicht in einer virtuellen Umgebung befinden, ist sudo erforderlich. Das könnte dein Problem gewesen sein.
Marian
138

Ausgehend von einem neuen Ubuntu 14.04.2-System wurden diese beiden Befehle benötigt:

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

Nur die "Pip-Installation" alleine durchzuführen, hat nicht funktioniert.

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

Ray Kiddy
quelle
2
Dieser hat funktioniert, aus irgendeinem Grund funktioniert die einfache Pip-Installation auf Ubuntu nicht sauber
Dap
In Ubuntu 14.04 wird die Fehlermeldung "EnvironmentError auslösen ("% s nicht gefunden "% (mysql_config.path,)" "angezeigt, und das erste cmd hat das Problem behoben. Danke, sparen Sie mir etwas Zeit
zhihong
Um die error: command 'x86_64-linux-gnu-gcc' failed with exit status 1Verwendung zu behebensudo apt-get install build-essential
FelikZ
Ich frage mich, warum das nötig ist. Eines fällt mir ein. Ich habe dies getestet, indem ich nur installiert und nicht gebaut habe. Haben Sie eines der Dinge erstellt, die Sie installiert haben, anstatt es nur zu installieren?
Ray Kiddy
Dies sollte natürlich als Antwort für Ubuntu akzeptiert werden.
Roon13
23

Zuerst

pip install pymysql

Dann setzen Sie den Code unten in __init__.py( projectname/__init__.py)

import pymysql
pymysql.install_as_MySQLdb()

Meine Umgebung ist (python3.5, django1.10) und diese Lösung funktioniert für mich!

Hoffe das hilft!!

放 課後
quelle
3
Woow, ich habe über 5 Stunden lang versucht, dies ohne Erfolg zu beheben. Dies ist die einzige Lösung, die unter Ubuntu 16.04 / Python 3.5 / Django 1.11 funktioniert hat. Vielen Dank für das Teilen.
Paullo
Das funktioniert bei mir nicht. Meine Umgebung ist Python 3.7 und Django 2.2. Bitte hilf mir.
Rajen K Bhagat
Das sollte dort oben sein. Ich habe stundenlang nach einer Lösung gesucht. Ich habe eine virtuelle Umgebung mit Python 2.7, auf der Django 1.6 ausgeführt wird. Ich konnte weder MySQL-Python noch mysqlclient installieren. Egal was ich versuchte, ich bekam einen "schwerwiegenden Fehler: mysql.h". Dieser hat den Trick gemacht.
Rolandsaven
22

Ich hatte Probleme bei der Installation der 64-Bit-Version von MySQLdb unter Windows über Pip (Problem beim Kompilieren von Quellen) [32-Bit-Version in Ordnung installiert]. Es gelang, die kompilierte MySQLdb aus der .whl-Datei zu installieren, die unter http://www.lfd.uci.edu/~gohlke/pythonlibs/ verfügbar ist.

Die .whl-Datei kann dann über pip als Dokument in https://pip.pypa.io/en/latest/user_guide/#installing-from-wheels installiert werden

Zum Beispiel, wenn Sie in speichern C:/, können Sie über installieren

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

Follow-up: Wenn Sie eine 64-Bit-Version von Python installiert haben, möchten Sie die 64-Bit-AMD-Version von MySQLdb über den obigen Link installieren [dh auch, wenn Sie einen Intel-Prozessor haben]. Wenn Sie stattdessen versuchen, die 32-Bit-Version zu installieren, wird der nicht unterstützte Radfehler in den Kommentaren unten angezeigt.

Kyrenia
quelle
Total fehlgeschlagen. Nicht unterstütztes Rad
M Hornbacher
3
Ich brauchte einen MySQL-Client. pip install mysqlclient-1.3.7-cp27-none-win_amd64.whlfunktioniert super.
Arsenik
2
Ging zu http://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python , um die whlDatei herunterzuladen (ich würde 64-Bit für meine 64-Bit-Python-Installation verwenden). Datei in c:/Verzeichnis gespeichert und ausgeführt pip install c:/MySQL_python-1.2.5-cp27-none-win_amd64.whlEs wurde in Sekunden installiert und war gut zu gehen. Zu einfach!
Curtisp
Funktionierte auch für mich, da die Pip-Installation mit Namen fehlschlug.
Artem Russakovskii
19

Nun, das hat bei mir funktioniert:

pip install mysqlclient

Dies ist für Python 3.x.

Kinsley Kajiva
quelle
3
Dies ist die erste Lösung, die für mich für Python 3.5 / Django 1.11
Braden Holt
1
Sie könnten Probleme mit einer fehlenden mysql_config-Datei bekommen. Siehe stackoverflow.com/questions/7475223/…
zwep
7

Ich habe alle Optionen ausprobiert, konnte sie jedoch nicht auf der Redhat-Plattform zum Laufen bringen. Ich habe Folgendes getan, damit es funktioniert: -

yum install MySQL-python -y

Nach der Installation des Pakets konnte das Modul im Interpreter wie folgt importiert werden: -

>>> import MySQLdb
>>> 
Ashwin
quelle
Die Frage wurde ausdrücklich erwähnt pip. Welche Distribution verwenden Sie? Auf Fedora 24 funktioniert dies, um das Modul über pip zu installieren : sudo dnf install python python-devel mysql-devel redhat-rpm-config gcc,sudo pip install MySQL-python
Marian
Ich verstehe, dass die Frage über pip gestellt wird, aber ich persönlich konnte sie nicht mit pip lösen. Daher habe ich nur meine Problemumgehung geteilt, die das Problem für mich behoben hat. Ich benutze Centos 6.8. Die Pip-Liste zeigt nichts in Bezug auf MySQL an und wenn ich "pip install MySQL-python" mache, wird ein Fehler ausgegeben. Interessanterweise habe ich herausgefunden, dass ich nach der Installation über yum i: e "yum install MySQL-python" MySQLdb importieren kann. Auch einmal mit yum Installation fertig war ich in der Lage, über Pip ohne Fehler zu installieren.
Ashwin
6

Gehen Sie zu pycharm und dann zur Standardeinstellung -> pip (Doppelklick) - pymsqldb ..--> install - nach der Installation Verwendung in einem Programm wie diesem

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 von Kiran
quelle
3

Wenn Sie Raspberry Pi [Raspbian OS] verwenden

Zuerst muss der Befehl pip installiert werden

apt-get install python-pip

Also einfach nacheinander installieren

apt-get install python-dev libmysqlclient-dev

apt-get install python-pip

pip install MySQL-python
Tanakorn Lueangkajonvit
quelle
Himbeere wird in der Frage nicht erwähnt
Héctor Valverde Pareja
3

Wenn Sie mysqlclient nicht installieren können , können Sie auch pymysql installieren :

pip install pymysql

Dies funktioniert genauso wie MySqldb . Verwenden Sie danach pymysql anstelle von MySQLdb

Aniket Babhulkar
quelle
Dies sollte die Antwort sein.
JayJay123
2

Ich hatte auch das gleiche Problem. Befolgen Sie diese Schritte, wenn Sie unter Windows arbeiten. Gehen Sie zu: 1. Mein Computer 2. Systemeigenschaften 3. Erweiterte Systemeinstellungen 4. Klicken Sie auf der Registerkarte "Erweitert" auf die Schaltfläche "Umgebungsvariablen". 5. Dann müssen Sie unter Systemvariablen die folgenden Variablen hinzufügen / ändern: PYTHONPATH und Pfad. Hier ist eine Einfügung, wie meine Variablen aussehen: Python-Pfad:

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

Pfad:

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

Siehe diesen Link als Referenz

D-Codierer
quelle
1

Die obige Antwort ist großartig, aber es kann einige Probleme geben, wenn wir pip verwenden, um MySQL-Python unter Windows zu installieren

Zum Beispiel werden einige Dateien benötigt, die mit Visual Stdio verknüpft sind. Eine Lösung installiert VS2008 oder 2010 …… Offensichtlich kostet es zu viel.

Ein anderer Weg ist die Antwort von @ bob90937. Ich bin hier, um etwas hinzuzufügen.

Mit http://www.lfd.uci.edu/~gohlke/pythonlibs können Sie viele Windows-Binärdateien vieler wissenschaftlicher Open-Source-Erweiterungspakete für die offizielle CPython-Distribution der Programmiersprache Python herunterladen.

Zurück zum Thema, wir können MySQL-Python (py2) oder Mysqlclient (py3) auswählen und Pip Install verwenden, um zu installieren. es gibt uns große Bequemlichkeit!

Riesig
quelle
1

Für Python3 musste ich Folgendes tun:

python3 -m pip install MySQL
Frank Harb
quelle
1

auf RHEL 7:

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

sudo /bin/pip2 install MySQL-python

wired00
quelle
1

Wenn Sie Windows auf Ihrem System installiert haben, geben Sie den folgenden Befehl in cmd ein:

pip install mysql-connector

Wenn der obige Befehl nicht funktioniert, versuchen Sie Folgendes:

pip install mysql-connector-python

Wenn die oben genannten Befehle die Arbeit nicht erledigen, versuchen Sie Folgendes:

pip install mysql-connector-python-rf

Das war's, du bist jetzt gut zu gehen.

kesari007
quelle
1

Viele der hier gegebenen Antworten sind ziemlich verwirrend, deshalb werde ich versuchen, es einfach auszudrücken. Es hat mir geholfen, dies zu installieren

pip install pymysql

Verwenden Sie dann den folgenden Befehl in der Python-Datei

import pymysql as MySQLdb

Auf diese Weise können Sie MySQLdb problemlos verwenden.

DovaX
quelle
0

Wenn pip3 nicht funktioniert, können Sie Folgendes versuchen:

sudo apt install python3-mysqldb
Marc Gottlieb
quelle
Keine sehr gute Antwort. Sie nehmen an, dass Python Version 3 und das Betriebssystem Debian / Ubuntu ist, aber das wissen Sie nicht. Bitte warten Sie, bis der Autor weitere Details hinzufügt.
Phd
0

Meine Umgebung ist:

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

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

funktioniert bei mir.

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

Folgen Sie der Antwort von @Nick T funktioniert nicht für mich, ich versuche apt-get install python-mysqldb, für mich zu arbeiten

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
quelle