wake-up-neo.com

ImportError: Kein Modul mit dem Namen MySQLdb

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

Ich habe ein Problem mit der Datenbank ... Ich bekomme eine 

ImportError: No module named MySQLdb

wenn ich ausführen 

http://127.0.0.1:5000/testdb

Ich habe alle möglichen Möglichkeiten ausprobiert, um python mysql zu installieren, den im Tutorial genannten easy_install, Sudo apt-get install.

Ich habe Mysql in meiner virtuellen Umgebung installiert. Meine Verzeichnisstruktur ist genauso wie im Tutorial erklärt. Das Modul wurde erfolgreich in meinem System installiert und ich bekomme immer noch diesen Fehler.

Bitte helfen Was könnte das verursachen?.

83
user3182194

Wenn Sie Probleme beim Kompilieren der binären Erweiterung haben oder auf einer Plattform, auf der Sie nicht kippen können, können Sie die reinen Python PyMySQL Bindings verwenden.

Einfach pip install pymysql und wechseln Sie Ihren SQLAlchemy-URI, um so zu beginnen:

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

Es gibt einige andere Treiber , die Sie auch versuchen könnten.

185
DazWorrall

Oder probiere es aus: 

apt-get install python-mysqldb
85
Edward van Kuik

Mein Thema ist:

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

und meine Entschlossenheit:

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

am Anfang habe ich gerade MySQL-Python installiert, aber das Problem bestand immer noch. Ich denke, wenn dieses Problem aufgetreten ist, sollten Sie auch mysql-devel in Betracht ziehen. Hoffe, das hilft.

16
Adventurist

Ich habe dieses Problem erhalten, als ich an SQLAlchemy arbeitete. Der Standarddialekt, den SQLAlchemy für MySQL verwendet, ist mysql+mysqldb.

engine = create_engine('mysql+mysqldb://scott:[email protected]/foo')

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

Sudo pip install mysql-python
13

kannst du es versuchen

pip install mysqlclient
12
Doni

Das hängt auch von meiner Python-Version ab.

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

Wenn Sie jedoch Python 2 verwenden, sollten Sie dies tun

Sudo pip install mysql-python

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

7
seokhoonlee

Also habe ich ungefähr fünf Stunden damit verbracht, herauszufinden, wie ich mit diesem Problem umgehen sollte, wenn ich renne

./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 Probleme, 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 (innerhalb 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 bequemste Weg, den ich nehmen konnte.

4
Flibertyjibbet

Obwohl @ Edward van Kuik 's Antwort korrekt ist, berücksichtigt es nicht Problem mit virtualenv v1.7 und höher .

Insbesondere das Installieren von python-mysqldb Über apt unter Ubuntu unter /usr/lib/pythonX.Y/dist-packages, Aber dieser Pfad ist standardmäßig nicht in sys.path Der virtuellen Umgebung enthalten.

Also m dieses Problem zu lösen , sollten Sie Ihre virtuelle Umgebung mit Systempaketen erstellen, indem Sie Folgendes ausführen:

virtualenv --system-site-packages .venv

3
Chen Levy
yum install MySQL-python.x86_64

arbeitete für mich.

0
hamed

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

xcode-select --install
0