Layer 8Ehrlicher Tech-Support
SoftwareSchweregrad: AnfängerfehlerModuleNotFoundError

Python: ModuleNotFoundError: No module named X

Python meldet ModuleNotFoundError, obwohl das Paket installiert ist? Meist stimmt die Umgebung, der Import-Name oder der Dateiname nicht. So löst du es.

Aufwand:
ca. 10 Min.

Das Symptom

Das Skript, das eben noch lief, bricht mit einer einzigen roten Zeile ab: ModuleNotFoundError: No module named 'requests'. Du bist dir sicher, das Paket installiert zu haben – pip install lief schließlich durch. Trotzdem besteht Python darauf, das Modul nicht zu kennen.

Die „Layer 8“-Wahrheit

Python lügt hier nicht, es sucht nur an einer anderen Stelle, als du denkst. Auf einem typischen System existieren mehrere Pythons nebeneinander – das systemeigene, ein oder mehrere venvs, verschiedene Minor-Versionen. Jedes hat seinen eigenen Paketordner. Wenn pip ins eine installiert und du das Skript mit einem anderen startest, treffen sich beide nie. Der zweithäufigste Grund ist ein Etikettenschwindel bei den Namen: Man installiert pillow, importiert aber PIL. Und der stille Klassiker: eine eigene Datei namens random.py, die die echte Bibliothek verdeckt. In allen drei Fällen ist nicht Python kaputt – nur die Erwartung, dass „installiert“ automatisch „hier und jetzt auffindbar“ heißt.

Die echte, verifizierte Lösung

1000 % faktenbasiert. Jeder Befehl ist real, jeder Pfad existiert. Schritt für Schritt:

  1. 1.

    Aktives Python identifizieren

    Zuerst klären, welches Python und welches pip gerade aktiv sind. Zeigen beide auf dasselbe (idealerweise dein venv), passt die Umgebung:

    which python
    python -m pip --version
    
  2. 2.

    Ins richtige venv wechseln oder eines anlegen

    Läuft das Skript außerhalb der Umgebung, in der das Paket steckt, hilft das passende venv. Neu anlegen und aktivieren, falls noch keines existiert:

    python3 -m venv .venv
    source .venv/bin/activate
    
  3. 3.

    Im aktiven Interpreter installieren

    Der sicherste Weg gegen 'falsches pip': die Installation direkt an den laufenden Interpreter binden. So landet das Paket garantiert in genau der Umgebung, die auch das Skript nutzt:

    python -m pip install <paket>
    
  4. 4.

    Import-Name gegen Paketname prüfen

    Wenn das Paket installiert ist und die Umgebung stimmt, ist oft nur der Import falsch. Nachsehen, unter welchem Namen das Modul wirklich importiert wird (Pillow als PIL, opencv-python als cv2).

  5. 5.

    Namenskollision mit eigener Datei ausschließen

    Heißt deine eigene Datei wie ein Modul (z. B. random.py, email.py, token.py), importiert Python deine Datei statt der Bibliothek – und findet die erwarteten Inhalte nicht. Datei umbenennen und die zugehörige .pyc entfernen.

Häufige Fragen (FAQ)

?Warum ModuleNotFoundError, obwohl ich das Paket installiert habe?

Fast immer, weil pip in eine andere Python-Umgebung installiert hat als die, mit der du das Skript startest. Systemweites Python, ein venv und mehrere Versionen (python3.11, python3.12) haben getrennte Paketordner. Installation und Ausführung müssen dieselbe Umgebung treffen.

?Warum heißt der Import anders als das Paket?

Weil Paketname und Modulname nicht identisch sein müssen. 'pip install pillow' liefert das Modul 'PIL', 'opencv-python' importiert man als 'cv2', 'beautifulsoup4' als 'bs4'. Der ModuleNotFoundError nennt den Import-Namen, nicht den Installationsnamen.

Belege

Diese Seite ist gegen die folgenden Primärquellen geprüft – Hersteller, Standard oder Gesetzestext. Wer es nicht glaubt, muss es nicht: Da steht, wo es nachzulesen ist.

Zuletzt geprüft am . Dokumentation altert – ein Datum daneben ist der einzige ehrliche Umgang damit.

Auch zu finden unter

Verwandte Fehler

SWAnfängerfehlerexternally-managed-environment

pip: error: externally-managed-environment

pip install bricht mit 'externally-managed-environment' ab? So installierst du Python-Pakete korrekt per venv oder pipx statt am System.

SWLästigCERTIFICATE_VERIFY_FAILED

pip: SSL: CERTIFICATE_VERIFY_FAILED

pip lädt keine Pakete wegen SSL-Zertifikatsfehler? Meist schneidet ein Firmen-Proxy mit oder die Zertifikate sind veraltet — beides ist lösbar.