HOWTO · Python

ImportError: Kein Modul namens mysql.connector

In diesem Tutorial lernen Sie, ImportError zu beheben: Kein Modul namens mysql.connector in Python.

Auf dieser Seite

ImportError: No module named mysql.connector bedeutet, dass der Python-Interpreter, der Ihren Code ausführt, den Import mysql.connector nicht finden kann. Das Paket, das dieses Modul bereitstellt, heißt mysql-connector-python. Meist ist das Paket entweder nicht installiert oder für einen anderen Python-Interpreter installiert als den, der das Programm ausführt.

Was ImportError: No module named mysql.connector bedeutet

Python importiert Module aus den Paketen, die dem aktuellen Interpreter zur Verfügung stehen. Eine erfolgreiche Installation in einer Umgebung macht das Paket nicht automatisch in einer anderen verfügbar. Beispielsweise kann das pip eines Terminals zu einem System-Python gehören, während Ihr Editor, Notebook, geplanter Task oder Ihre virtuelle Umgebung einen anderen Interpreter verwendet.

Bei diesem Fehler kann Python das Modul nicht finden; daraus lässt sich nicht auf ein Problem mit dem MySQL-Server schließen. Installieren Sie zuerst den Connector für den Interpreter, den Sie verwenden, und prüfen Sie anschließend den Import mit demselben Interpreter. Eine Datenbankverbindung ist ein separater Schritt.

mysql-connector-python in der verwendeten Python-Umgebung installieren

Verwenden Sie die Form -m pip von Python, damit pip mit dem Interpreter aus dem Befehl ausgeführt wird. Führen Sie im Terminal python -m pip install mysql-connector-python aus.

Wenn Sie Ihr Programm mit python3 starten, verwenden Sie python3 -m pip install mysql-connector-python. Unter Windows können Sie mit dem Python-Launcher den Interpreter auswählen, zum Beispiel mit py -m pip install mysql-connector-python. Ersetzen Sie den Befehl durch den, mit dem Sie Ihr Programm starten. Bei der Installation mit einem anderen Befehl kann das Paket in einer anderen Umgebung landen.

Wenn Ihr Projekt eine virtuelle Umgebung verwendet, aktivieren Sie diese vor der Installation. Für eine venv-Umgebung namens venv verwenden macOS- oder Linux-Shells üblicherweise source venv/bin/activate; in der Windows-Eingabeaufforderung lautet der Befehl venv\\Scripts\\activate.bat, in PowerShell venv\\Scripts\\Activate.ps1. Führen Sie den Installationsbefehl anschließend mit dem Python-Interpreter dieser Umgebung aus. Sie können die Aktivierung auch umgehen und den Interpreter der Umgebung direkt aufrufen, zum Beispiel unter macOS oder Linux mit venv/bin/python -m pip install mysql-connector-python.

Installation überprüfen

Führen Sie dieses Beispiel mit demselben Interpreter und in derselben Umgebung aus, die Ihr Programm verwendet:

Der Code und die angezeigten Bezeichnungen oder Ausgaben in diesem Abschnitt bleiben auf Englisch.

import mysql.connector

print("mysql.connector import succeeded")
mysql.connector import succeeded

Das bereitgestellte Laufzeitergebnis zeigt, dass diese Importprüfung erfolgreich war. Führen Sie sie je nach Bedarf mit python, python3, py oder dem vollständigen Pfad zum Interpreter Ihres Projekts aus. Die Erfolgsmeldung bedeutet, dass dieser Interpreter mysql.connector importieren kann. Die Prüfung testet weder den Zugriff auf den Server noch Zugangsdaten oder die Netzwerkverbindung. Schlägt der Import in Ihrer Umgebung fehl, vergleichen Sie als Nächstes die verwendeten Interpreter.

Fehler beheben, wenn er weiterhin auftritt

Vergleichen Sie den Interpreter, mit dem Sie das Paket installiert haben, mit dem Interpreter, der das fehlerhafte Programm ausführt. Führen Sie an beiden Stellen mit dem jeweiligen python-Befehl python -c "import sys; print(sys.executable)" aus. An den ausgegebenen Pfaden sollte zu erkennen sein, ob dieselbe Umgebung verwendet wird. Unterscheiden sie sich, installieren Sie das Paket mit dem Interpreter des Programms, zum Beispiel mit /path/to/project/venv/bin/python -m pip install mysql-connector-python. Ersetzen Sie den Pfad durch den Interpreterpfad, den Ihr Programm ausgibt.

Prüfen Sie bei einer IDE, einem Notebook oder einem Dienst den dort konfigurierten Python-Interpreter beziehungsweise Kernel. Eine in einem Terminal aktivierte Umgebung ändert diese Einstellungen nicht automatisch. Wählen Sie in diesem Werkzeug die gewünschte Umgebung aus oder installieren Sie das Paket in dem Interpreter, den es bereits verwendet. Führen Sie die Importprüfung anschließend noch einmal im selben Kontext aus.

Falls der Import weiterhin fehlschlägt, vergewissern Sie sich, dass der Installationsbefehl abgeschlossen wurde und den erwarteten Interpreter verwendet hat. Mit python -m pip show mysql-connector-python und diesem Interpreter können Sie prüfen, ob pip das Paket in seiner Umgebung findet. Fehlt es, wiederholen Sie die Installation mit diesem Interpreter. Verlassen Sie sich nicht auf einen alleinstehenden pip-Befehl, da dieser zu einer anderen Python-Installation gehören kann.

Ein fehlendes Modul auf oberster Ebene ist nicht dasselbe wie ein Fehler, der beim Laden einer anderen Abhängigkeit auftritt. Diese abgesicherte Prüfung gibt den Namen des fehlenden Moduls aus, ohne den erwarteten Fall eines fehlenden Pakets zu einem unbehandelten Traceback zu machen. Python meldet auch andere Importfehler; untersuchen Sie diese separat.

Der Code und die angezeigten Bezeichnungen oder Ausgaben in diesem Abschnitt bleiben auf Englisch.

try:
    import mysql.connector
except ModuleNotFoundError as error:
    print(f"Module not found: {error.name}")
except Exception as error:
    print(f"Import failed: {error}")
else:
    print("mysql.connector import succeeded")

Das Ergebnis hängt davon ab, welche Pakete der Interpreter installiert hat; daher wird keine feste Ausgabe angezeigt. Lautet der gemeldete fehlende Name mysql oder mysql.connector, installieren Sie mysql-connector-python mit demselben Interpreter, den das Programm verwendet. Wird ein anderer Name gemeldet, untersuchen Sie diese Abhängigkeit, statt daraus zu schließen, dass das Connector-Paket selbst fehlt. Weitere Importfehler werden separat zur Untersuchung ausgegeben.

Nach erfolgreichem Import eine Verbindung zu MySQL herstellen

Sobald die Importprüfung funktioniert, können Sie mit mysql.connector.connect(host="<host>", user="<username>", password="<password>", database="<database>") versuchen, eine Datenbankverbindung herzustellen. Ersetzen Sie die Platzhalter durch Werte aus Ihrer eigenen Konfiguration. Speichern Sie keine echten Passwörter in gemeinsam genutztem Quellcode. Dieser Aufruf setzt einen erreichbaren MySQL-Server und gültige Verbindungsdaten voraus und ist daher nicht Teil der Importprüfung. Ein erfolgreicher Import belegt weder, dass der Server läuft, noch, dass die Zugangsdaten akzeptiert werden oder das Netzwerk den Zugriff erlaubt. Untersuchen Sie solche Verbindungsprobleme getrennt von ImportError.