it-swarm.com.de

Fehler beim Laden des MySQLdb-Moduls "Haben Sie mysqlclient oder MySQL-python installiert?"

Ich benutze die Windows 10-Befehlszeile für ein Django-Projekt, das Python34 verwendet. Ich habe jedoch Schwierigkeiten mit SQL. 

Ich habe mysqlclient bereits mit pip install mysqlclient==1.3.5 installiert und die Datei lokalisiert, um sicherzustellen, dass ich nicht wahnsinnig war. Ich habe dann python manage.py migrate ausgeführt, um die Tabellen in die SQL-Datenbank zu migrieren (ich verwende phpmyadmin). Wenn jedoch der Befehl zurückkehrte mit ...

 File "C:\Users\user\env\lib\site-packages\Django\db\backends\mysql\base.py", line 30, in <module>
    'Did you install mysqlclient or MySQL-python?' % e
Django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named 'MySQLdb'.
Did you install mysqlclient or MySQL-python?

Mir ist bekannt, dass Fragen wie diese bereits existieren, aber keine Lösung scheint die Versuche beeinflusst zu haben. Danke im Voraus.

18
PrimeBenefiter
pip install pymysql

Bearbeiten Sie dann die Datei __init__.py in Ihrem Origin-Projektverzeichnis (genau wie settings.py).

hinzufügen:

import pymysql

pymysql.install_as_MySQLdb()
75
aforwardz

Verwenden Sie den folgenden Befehl, um Ihr Problem zu lösen.

pip install mysql-python
apt-get install python3-mysqldb libmysqlclient-dev python-dev

Arbeitet unter Debian

7
user2317231

Nach der Migration zu Python 3 mit demselben Problem konfrontiert. MySQL-Python ist anscheinend inkompatibel, so dass die offiziellen Django-Dokumente und mysqlclient mit pip install mysqlclient auf dem Mac installiert sind. Beachten Sie, dass einige Probleme in Bezug auf Betriebssysteme in Dokumenten erwähnt werden. 

Zitieren aus docs :

Voraussetzungen

Möglicherweise müssen Sie die Python- und MySQL-Entwicklungsheader und -Bibliotheken wie folgt installieren:

Sudo apt-get install python-dev default-libmysqlclient-dev # Debian/Ubuntu

Sudo yum install python-devel mysql-devel # Red Hat/CentOS

brew install mysql-connector-c # macOS (Homebrew) (Derzeit hat es einen Fehler. Siehe unten)

Unter Windows können binäre Laufräder ohne MySQLConnector/C oder MSVC installiert werden.

Hinweis zu Python 3: Wenn Sie Python3 verwenden, müssen Sie Python3-dev mit folgendem Befehl installieren:

Sudo apt-get install python3-dev # debian/Ubuntu

Sudo yum install python3-devel # Red Hat/CentOS

Hinweis zum Bug von MySQL Connector/C unter macOS

Siehe auch: https://bugs.mysql.com/bug.php?id=86971

Versionen von MySQL Connector/C verfügen möglicherweise über falsche Standardkonfigurationsoptionen, die zu Kompilierungsfehlern führen, wenn mysqlclient-python installiert wird. (Seit November 2017 gilt dies für das mysql-connector-c und das offizielle Paket von Homebrew).

Die Änderung von mysql_config behebt diese Probleme wie folgt.

Veränderung

# on macOS, on or about line 112:
# Create options
libs="-L$pkglibdir"
libs="$libs -l "

zu

# Create options
libs="-L$pkglibdir"
libs="$libs -lmysqlclient -lssl -lcrypto"

Eine falsche ssl-Konfiguration kann ebenfalls zu Problemen führen. für Einzelheiten zu macOS siehe z. B. brew info openssl.

Install von PyPI

pip install mysqlclient

HINWEIS: Wheels für Windows werden möglicherweise nicht mit dem Quellpaket veröffentlicht. Sie sollten die Version in Ihr requirements.txt einfügen, um zu vermeiden, dass das neueste Quellpaket installiert wird.

Von Quelle installieren

  1. Lade die Quelle von git clone oder zipfile herunter.
  2. Anpassen site.cfg
  3. python setup.py install
4
Aniket Sinha

Ich hatte dieses Problem erst vor kurzem, obwohl ich die Python 3-kompatible mysqlclient-Bibliothek verwendet hatte, und es gelang mir, mein Problem zu lösen, wenn auch auf unorthodoxe Weise. Wenn Sie MySQL 8 verwenden, probieren Sie es aus und schauen Sie, ob es hilft! :)

Ich habe einfach eine Kopie der libmysqlclient.21.dylib -Datei in meiner aktuellen Installation von MySQL 8.0.13 erstellt, die sich in /usr/local/mysql/lib befand, und diese Kopie unter demselben Namen nach /usr/lib verschoben. .

Sie müssen den Schutz der Sicherheitsintegrität auf Ihrem Mac jedoch vorübergehend deaktivieren. Dazu müssen Sie jedoch keine Berechtigungen für /usr/lib haben oder können, ohne sie zu deaktivieren. Starten Sie dazu das Wiederherstellungssystem, klicken Sie oben im Menü auf Dienstprogramme, öffnen Sie das Terminal und geben Sie csrutil disable in das Terminal ein. Denken Sie daran, den Sicherheitsintegritätsschutz wieder zu aktivieren, wenn Sie damit fertig sind! Der einzige Unterschied zu dem obigen Vorgang besteht darin, dass Sie stattdessen csrutil enable ausführen.

Weitere Informationen zum Deaktivieren und Aktivieren des Sicherheitsintegritätsschutzes von macOS hier .

0
Xoadra

Für pip

pip install pymysql

Für pip3 solltest du verwenden

python3 -m pip install PyMySQL

Bearbeiten Sie anschließend die Datei init.py im Origin-Verzeichnis Ihres Projekts (identisch mit settings.py). Hinzufügen:

import pymysql

pymysql.install_as_MySQLdb()
0