Kurze Antwort
Fehler mit pip und venv treten meist auf, wenn pip Pakete in den falschen Interpreter installiert, die virtuelle Umgebung nicht aktiviert ist oder System- und Benutzerpakete vermischt werden. Die Lösung besteht darin, eine neue venv-Umgebung zu erstellen, sie zu aktivieren und Pakete darin zu installieren, wobei Sie prüfen, ob die Befehle pip und python auf denselben Ort zeigen.
So erkennen Sie das Problem
- pip install meldet den Fehler Permission denied oder externally-managed-environment
- Ein Modul wird nicht gefunden, obwohl das Paket installiert ist
- Die Befehle python und python3 zeigen unterschiedliche Versionen
- venv lässt sich nicht aktivieren oder die Aktivierung geht nach dem Schließen des Terminals verloren
- pip list zeigt Pakete an, die Sie in dieser Umgebung nicht installiert haben
Häufigste Ursachen
Falscher Interpreter
Der Befehl python zeigt auf einen Interpreter, pip auf einen anderen. Pakete werden dort installiert, wo die Anwendung sie nicht sieht.
venv nicht aktiviert
Das Terminal ist in der Systemumgebung geblieben, daher installiert pip global statt in die virtuelle Umgebung.
Systempakete und PEP 668
Neuere Linux-Distributionen blockieren gemäß PEP 668 globale pip-Installationen; verwenden Sie venv oder `pipx`, nicht `--break-system-packages`.
Vermischung von Benutzer- und Systeminstallationen
Mit --user oder über den Systempaketmanager installierte Pakete können diejenigen in der venv-Umgebung überdecken.
Beschädigtes oder teilweise installiertes Paket
Eine unterbrochene Installation oder ein fehlerhaftes zwischengespeichertes Wheel führen zu Fehlern beim Import oder Update.
Lösung Schritt für Schritt
- 1
Prüfen Sie, welchen Interpreter und pip Sie verwenden
Führen Sie im Terminal
python --version,python3 --version,pip --versionundwhich pythonaus (unter Windowswhere python). Vergleichen Sie die Pfade: Wenn pip auf ein anderes Verzeichnis als der Interpreter zeigt, ist das die Ursache der meisten Fehler. Verwenden Sie bei Bedarfpython -m pip --version, um das pip zu sehen, das an den konkreten Interpreter gebunden ist. - 2
Erstellen Sie eine neue virtuelle Umgebung
Führen Sie im Stammverzeichnis des Projekts
python -m venv .venvaus (unter Linux und macOS bei Bedarfpython3 -m venv .venv). Unter Windows verwenden Siepy -m venv .venv, wenn der Python-Launcher installiert ist. Der Name.venvist eine Konvention und erleichtert das Erkennen; vermeiden Sie Leerzeichen im Projektpfad. - 3
Aktivieren Sie venv und prüfen Sie die Pfade
Führen Sie unter Windows (PowerShell)
.venv\Scripts\Activate.ps1aus, in der Eingabeaufforderung.venv\Scripts\activate.bat, und unter macOS und Linuxsource .venv/bin/activate. Nach der Aktivierung sollte die Eingabeaufforderung(.venv)anzeigen. Prüfen Sie mitwhich pythonundwhich pip(unter Windowswhere pythonundwhere pip), ob beide innerhalb von.venvliegen. - 4
Aktualisieren Sie pip innerhalb der Umgebung
Führen Sie bei aktivem venv
python -m pip install --upgrade pip setuptools wheelaus. Dadurch vermeiden Sie Fehler mit veraltetem pip, die bei der Installation moderner Pakete auftreten. Verwenden Sie wedersudo pipnoch globales pip. - 5
Installieren Sie Pakete und dokumentieren Sie Abhängigkeiten
Installieren Sie mit
python -m pip install paketname. Wenn Sie einerequirements.txthaben, verwenden Siepython -m pip install -r requirements.txt. Speichern Sie nach erfolgreicher Installation den Zustand mitpython -m pip freeze > requirements.txt, damit die Umgebung reproduzierbar ist; wennrequirements.txtbereits existiert, erstellen Sie zuerst eine Sicherungskopie, da die Datei überschrieben wird. - 6
Leeren Sie den Cache und installieren Sie das problematische Paket neu
Wenn die Installation abbricht, führen Sie
python -m pip cache purgeaus und wiederholen Sie die Installation. Für hartnäckige Fälle verwenden Siepython -m pip install --force-reinstall paketname. Prüfen Sie, ob das Paket ein Wheel für Ihre Plattform und Python-Version hat. - 7
Beheben Sie den Fehler externally-managed-environment
Auf neueren Linux-Distributionen ist globales pip blockiert. Die Lösung besteht darin, innerhalb einer venv-Umgebung zu arbeiten, anstatt
--break-system-packageszu verwenden. Wenn Sie ein Systemwerkzeug benötigen, installieren Sie es über den Paketmanager der Distribution (z. B.apt), nicht über pip. - 8
Stellen Sie sicher, dass die IDE dieselbe Umgebung verwendet
Öffnen Sie in VS Code die Befehlspalette (
Ctrl+Shift+P, unter macOSCmd+Shift+P) und wählen SiePython: Select Interpreter, dann markieren Sie.venv. Prüfen Sie in PyCharmSettings > Project: <Projektname> > Python Interpreter. Die IDE kann einen anderen Interpreter als das Terminal verwenden und soModuleNotFoundErrorverursachen.
Wenn nichts hilft: Isolation und Diagnose
Erstellen Sie ein völlig neues Verzeichnis, eine neue venv-Umgebung und installieren Sie nur das Paket, das Probleme macht. Wenn es dort funktioniert, ist die Ursache ein Konflikt mit einem anderen Paket oder eine veraltete requirements.txt. Verwenden Sie python -m pip check, um inkompatible Abhängigkeiten zu erkennen, und python -m pip list --outdated, um zu sehen, was veraltet ist. Um den Fehler zu reproduzieren, starten Sie Python mit -v oder -X importtime, um zu sehen, woher das Modul geladen wird. Wenn Sie mehrere Python-Versionen verwenden, ziehen Sie pyenv (macOS/Linux) oder den py-Launcher (Windows) in Betracht, um die Version explizit auszuwählen. Installieren Sie keine Pakete global, um das Problem zu „überbrücken“, da der Fehler beim nächsten Projekt zurückkehrt.
So beugen Sie vor
- Verwenden Sie immer venv pro Projekt und installieren Sie Pakete niemals global.
- Dokumentieren Sie Abhängigkeiten in requirements.txt und pinnen Sie Versionen.
- Stellen Sie sicher, dass IDE und Terminal denselben Interpreter verwenden.
- Vermeiden Sie sudo pip und --break-system-packages.
Wann Sie einen Profi rufen sollten
Wenn die Fehler von System-Python-Installationen, konfliktierenden Versionen oder einer Geschäftsumgebung mit eingeschränkten Rechten herrühren, rufen Sie den IT-Support an, um die Umgebung sicher zu isolieren und bestehende Werkzeuge zu erhalten.
Software- und Produktentwicklung · Individuelle Apps, SaaS und ein MVP in 4 bis 8 WochenHäufige Fragen
Warum sagt mir pip, dass das Paket bereits installiert ist, aber Python sieht es nicht?
Wahrscheinlich haben Sie das Paket in einen anderen Interpreter oder in die globale Umgebung installiert. Prüfen Sie die Pfade mit `which python` und `which pip` (unter Windows `where python` und `where pip`) und stellen Sie sicher, dass sie sich innerhalb derselben venv-Umgebung befinden.
Kann ich venv und globale Pakete zusammen verwenden?
Sie können, aber es wird nicht empfohlen, da es die Reproduzierbarkeit erschwert. Wenn Sie ein überall verfügbares Werkzeug benötigen, installieren Sie es über den Systempaketmanager oder verwenden Sie `pipx` für isolierte CLI-Werkzeuge.
Was bedeutet der Fehler externally-managed-environment?
Das ist ein Schutz, den neue Linux-Distributionen einführen, um zu verhindern, dass pip Systempakete ändert. Die Lösung besteht darin, innerhalb einer venv-Umgebung zu arbeiten, anstatt das Flag `--break-system-packages` zu verwenden.