ImportError: Kein Modul namens MySQLdb


124

Ich beziehe mich auf das folgende Tutorial, um eine Anmeldeseite für meine Webanwendung zu erstellen. http://code.tutsplus.com/tutorials/intro-to-flask-signing-in-and-out--net-29982

Ich habe ein Problem mit der Datenbank. Ich bekomme eine

ImportError: No module named MySQLdb

wenn ich ausführe

http://127.0.0.1:5000/testdb

Ich habe alle möglichen Möglichkeiten ausprobiert, um Python MySQL zu installieren, die im Tutorial easy_install, sudo apt-get install erwähnt wird.

Ich habe MySQL in meiner virtuellen Umgebung installiert. Meine Verzeichnisstruktur entspricht genau der im Tutorial erläuterten. Das Modul wurde erfolgreich in meinem System installiert und ich erhalte immer noch diesen Fehler.

Bitte helfen Sie. Was könnte das verursachen?


Sie haben MySQL installiert, aber das MySQLdb- Paket für Python installiert ?
Ffisegydd

Ich habe sudo apt-get install mysql-python verwendet. Als ich pip benutzte, bekam ich einen Umgebungsfehler für mysql_config
user3182194

mysql ist in meiner virtuellen Umgebung installiert und funktioniert ordnungsgemäß. mysqldb wurde ebenfalls installiert.
user3182194

Antworten:


277

Wenn Sie Probleme beim Kompilieren der Binärerweiterung haben oder auf einer Plattform, auf der Sie nicht können, können Sie versuchen, die reinen Python- PyMySQLBindungen zu verwenden.

pip install pymysqlSchalten Sie einfach Ihren SQLAlchemy-URI so um, dass er wie folgt beginnt:

SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://.....'

Es gibt einige andere Treiber, die Sie ebenfalls ausprobieren können.


Habe ich etwas verpasst? Warum ist das hier nicht aufgeführt? Speziell dieser Dialektname: docs.sqlalchemy.org/en/latest/core/engines.html . Dies war genau das, was ich falsch gemacht habe, danke.
CashIsClay

Beachten Sie, dass die Datenbank etwas von dem verwendeten Anschluss abhängt :)
Braden Holt

Dies funktionierte mit Python2.7. * für mich nicht. Verwendung von pip install MySQL-pythongearbeitet.
Rahul Goyal

1
Dieser hat sehr geholfen, als er nach einer Lösung für Fehler in der Kolben-SQLalchemie gesucht hat. Ich hatte folgende Probleme: 1. Fehler beim Ausführen der WSGI-Anwendung ModuleNotFoundError: Kein Modul mit dem Namen 'MySQLdb' 2. (_mysql_exceptions.OperationalError) (2006, 'SSL-Verbindungsfehler: SSL_CTX_set_tmp_dh fehlgeschlagen') (Hintergrund zu diesem Fehler unter: sqlalche.me/e/e3q8 ) Vielen Dank und ich hoffe, dass andere diese Lösung mit diesen Fehlerbeschreibungen schneller finden als ich!
Ben

Arbeitete unter CentOS und scheint die am wenigsten vom Betriebssystem abhängige Antwort zu sein. Vielen Dank!
trpt4him

94

Oder versuchen Sie Folgendes:

apt-get install python-mysqldb

9
Ich denke, die Antwort auf die Frage lautet
codersofthedark

1
Python-Mysqldb hat einige Abhängigkeiten wie VC ++ Bibliothek und funktioniert manchmal nicht auf 64-Bit-Betriebssystem
Nima Soroush

1
Das hat auch bei mir funktioniert. Ubuntu 16.04 mit Python 2.7
Genepool99

Für diejenigen Personen, die diese Antwort ihr Problem nicht gelöst haben, könnte dies auf ein virtuelles Problem zurückzuführen sein, siehe: stackoverflow.com/a/43984484
Chen Levy

Genauer gesagt:sudo apt-get install python-mysqldb
Tina J

24

darfst du es versuchen

pip install mysqlclient

2
Funktioniert für mich auf Python 3.7.3
Nsssayom

1
Vielen Dank für das Teilen. Es hat funktioniert, als ich Windows verwendet habe, aber ich hatte einige Probleme mit mysqlclient( OSError: mysql_config not found), als ich versuchte, dieselbe App unter Ubuntu auszuführen. Die akzeptierte Antwort hat es gelöst.
Bilal

Funktioniert unter OSX mit Anaconda und Python 3.7.6
Saaru Lindestøkke

16

Mein Problem ist:

return __import__('MySQLdb')
ImportError: No module named MySQLdb

und mein Vorsatz:

pip install MySQL-python
yum install mysql-devel.x86_64

Ganz am Anfang habe ich gerade MySQL-Python installiert, aber das Problem bestand immer noch. Wenn dieses Problem auftritt, sollten Sie auch mysql-devel berücksichtigen. Hoffe das hilft.


2
pip install MySQL-pythonJa, das ist das Ticket
Kirby

Dies hängt von Microsoft Visual C ++ - Bibliotheken in Windows-Umgebungen ab
Erizo,

15

Ich habe dieses Problem bekommen, als ich an SQLAlchemy gearbeitet habe. Der von SQLAlchemy für MySQL verwendete Standarddialekt ist mysql+mysqldb.

engine = create_engine('mysql+mysqldb://scott:tiger@localhost/foo')

Ich habe den No module named MySQLdbFehler " " erhalten, als der obige Befehl ausgeführt wurde. Um mysql-pythondas Problem zu beheben, habe ich das Modul installiert und das Problem wurde behoben.

sudo pip install mysql-python

3
Bevor Sie mysql-python installieren, müssen Sie noch mysql oder etwas installieren, das den Befehl msyql_config enthält.
mxi1

8

Es hängt meiner Erfahrung nach auch von der Python-Version ab.

Wenn Sie Python 3 verwenden, hat die Antwort von @DazWorrall für mich gut funktioniert.

Wenn Sie jedoch Python 2 verwenden, sollten Sie dies tun

sudo pip install mysql-python

Dies würde das 'MySQLdb'-Modul installieren, ohne den SQLAlchemy-URI ändern zu müssen.


2
Wenn jemand hier unten ist und einen Umgebungsfehler erhält: mysql_config wurde nicht gefunden, dann kann sudo apt-get install libmysqlclient-dev Ihnen helfen. Ursprüngliche Antwort: stackoverflow.com/a/5178698/2190689
ssi-anik

Wenn Sie einen Fehler vom Typ Konfigurationsparser erhalten, können Sie sich dies ansehen. stackoverflow.com/a/23978968/2190689
ssi-anik

7

Ich habe ungefähr 5 Stunden damit verbracht, herauszufinden, wie ich mit diesem Problem umgehen soll, wenn ich versuche, es auszuführen

./manage.py makemigrations

Mit Ubuntu Server LTS 16.1, einem vollständigen LAMP-Stack, Apache2 MySql 5.7 PHP 7 Python 3 und Django 1.10.2 hatte ich wirklich Mühe, eine gute Antwort darauf zu finden. Tatsächlich bin ich immer noch nicht zufrieden, aber die EINZIGE Lösung, die für mich funktioniert hat, ist diese ...

sudo apt-get install build-essential python-dev libapache2-mod-wsgi-py3 libmysqlclient-dev

gefolgt von (aus der virtuellen Umgebung)

pip install mysqlclient

Ich mag es wirklich nicht, Dev-Installationen verwenden zu müssen, wenn ich versuche, einen neuen Webserver einzurichten, aber leider war diese Konfiguration der einzig bequeme Weg, den ich einschlagen konnte.


Wenn Sie keine '-dev'-Pakete und keinen Compiler haben, können Sie kein Python-Modul installieren, das eine C-Erweiterungskomponente enthält, die kompiliert werden muss. Ihre einzige Möglichkeit wäre, eine separate Build-Box zu verwenden, die die zusätzlichen Bits enthält, und Python-Raddateien zu erstellen. Kopieren Sie dann die Räder auf Ihr Zielsystem und installieren Sie stattdessen die Pakete von den Rädern.
Graham Dumpleton

3

Während @Edward van Kuik ‚s Antwort richtig ist, dauert es nicht berücksichtigt ein Problem mit virtualenv v1.7 und höher .

Insbesondere bei der Installation python-mysqldbüber aptUbuntu wird es unter gestellt /usr/lib/pythonX.Y/dist-packages, aber dieser Pfad ist standardmäßig nicht in den virtuellen Umgebungen enthalten sys.path.

Also dieses Problem zu beheben , sollten Sie Ihre virtualenv mit Systempakete erstellen , indem Sie wie etwas ausgeführt wird :

virtualenv --system-site-packages .venv


0

Ich habe so viele Fehler im Zusammenhang mit Berechtigungen und was nicht. Sie können dies versuchen:

xcode-select --install


0

In Ubuntu 20 können Sie Folgendes versuchen:

sudo apt-get install libmysqlclient-dev
sudo apt-get install gcc
pip install mysqlclient
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.