Python-Kurs / Virtuelle Umgebungen erstellen und Pakete mit pip verwalten
Eine virtuelle Umgebung trennt die installierten Python-Pakete eines Projekts von denen anderer Projekte. Rufen Sie pip mit python -m pip auf, damit eindeutig ist, welcher Interpreter die Pakete erhält.
Die Aufgaben von Python, venv und pip verstehen
Zwei Projekte können unterschiedliche Versionen derselben Bibliothek benötigen. Wenn Sie alle Pakete in einer gemeinsamen Installation ändern, kann eine Aktualisierung ein anderes Projekt beeinträchtigen. Eine eigene .venv pro Projekt trennt diese Paketbestände.
| Bestandteil | Aufgabe |
|---|---|
| Python | Führt Ihren Code aus. |
| venv | Erstellt die virtuelle Projektumgebung. |
| pip | Installiert externe Pakete, zeigt sie an und entfernt sie. |
| requirements.txt | Hält Paketanforderungen für eine spätere Installation fest. |
Eine virtuelle Umgebung ist keine Sicherheits-Sandbox. Ihr Code läuft weiterhin mit Ihren Benutzerrechten und kann auf entsprechend zugängliche Dateien zugreifen. Die Dokumentation zu venv beschreibt die Trennung der Paketumgebungen. Die VS-Code-Anleitung dieses Kurses zeigt, wie Sie den Projektinterpreter auch im Editor auswählen.
Eine Umgebung erstellen und bei Bedarf aktivieren
Öffnen Sie das Terminal im Projektordner und verwenden Sie den dafür vorgesehenen Python-Interpreter. Prüfen Sie eine bereits vorhandene .venv, bevor Sie sie wiederverwenden oder neu anlegen. Für ein neues Projekt lautet der Erstellungsbefehl:
python -m venv .venv
Falls Ihr Entwicklungsinterpreter unter macOS oder Ubuntu python3 heißt, ersetzen Sie hier den ersten Befehlsnamen entsprechend. Bei mehreren Installationen ist auch dessen absoluter Pfad möglich. Aktivieren Sie die erstellte Umgebung in Windows PowerShell mit:
.\.venv\Scripts\Activate.ps1
In einer passenden Shell unter macOS oder Ubuntu verwenden Sie stattdessen:
source .venv/bin/activate
Aktivierung verändert die Befehlssuche der aktuellen Shell, damit python zuerst den Projektinterpreter findet. Sie ist keine zusätzliche Installation und gilt nicht automatisch in jedem neuen Terminal. Wenn PowerShell die Aktivierung blockiert, verwenden Sie den direkten Pfad .\.venv\Scripts\python.exe. Unter macOS oder Ubuntu lautet er .venv/bin/python. Ersetzen Sie damit python in den folgenden Befehlen, wenn Sie ohne Aktivierung arbeiten. Eine systemweite Lockerung der Ausführungsrichtlinie ist dafür nicht erforderlich.
Halten Sie Quellcode und requirements.txt neben .venv. So können Sie die Umgebung später neu erstellen, ohne dabei Ihre Projektdateien zu verlieren.
Ein Paket installieren und den Bestand für die Neuinstallation notieren
Das Beispiel verwendet pandas, eine Bibliothek für tabellarische Daten. Prüfen Sie vor einer Installation Paketname und offizielle Bezugsquelle und installieren Sie nur, was Sie benötigen. Die pandas-Installationsanleitung nennt PyPI als eine der offiziellen Quellen für pip. Der Installationsname einer Distribution muss nicht immer dem späteren Importnamen entsprechen.
Führen Sie im ausgewählten Projektinterpreter diese Schritte aus. Die Datei requirements.txt wird im aktuellen Ordner geschrieben; sichern Sie einen vorhandenen Inhalt, bevor Sie ihn durch Umleitung ersetzen.
python -m pip install pandas
python -m pip show pandas
python -m pip freeze > requirements.txt
python -m pip install -r requirements.txt
install installiert pandas und benötigte Abhängigkeiten. show zeigt unter anderem Version und Installationsort; dieser sollte innerhalb der Projektumgebung liegen. freeze schreibt den erfassten Paketbestand in das Anforderungsformat. Der letzte Befehl installiert die daraus gelesenen Anforderungen. Im gleichen, bereits passenden Umfeld kann er melden, dass die Pakete schon vorhanden sind.
Um die Neuinstallation tatsächlich zu prüfen, erstellen Sie zusätzlich eine neue Umgebung unter einem anderen Namen, etwa .venv-check. Verwenden Sie deren Python ausdrücklich mit -m pip install -r requirements.txt, während Sie im Ordner mit der Anforderungsdatei bleiben. Vergleichen Sie danach Versionen, pip check und einen echten Import. Überschreiben Sie dafür nicht Ihre funktionierende Arbeitsumgebung.
Mit python -c "import pandas as pd; print(pd.Series([3500, 8000, 2500]).sum())" können Sie den Import und eine Berechnung prüfen. Erwarten Sie 14000. Ersetzen Sie nur 8000 durch 9000 und prüfen Sie 15000; stellen Sie danach die ursprüngliche Eingabe wieder her. Das soll in beiden überprüften Umgebungen funktionieren.
pip freeze beschreibt den installierten Bestand und erzeugt nicht automatisch eine plattformunabhängige Sperrdatei. Es ersetzt weder Datei-Hash-Prüfungen noch Tests auf anderen Betriebssystemen. Welche Hilfswerkzeuge standardmäßig ausgelassen werden, hängt unter anderem von der Python-Version ab; die Referenz zu pip freeze erläutert diese Grenzen.
Shells und PowerShell-Versionen können bei der Umleitung mit > unterschiedliche Textkodierungen verwenden. Falls das Einlesen fehlschlägt, prüfen Sie die Datei und speichern Sie sie als UTF-8. Eine leere oder fehlerhaft dekodierte Datei ist kein Beleg für eine erfolgreiche Rekonstruktion.
Prüfen Sie nach einer Aktivierung oder einem Terminalwechsel erneut, ob Interpreter und pip wirklich zur Projektumgebung gehören:
python -c "import sys; print(sys.executable)"
python -m pip --version
Umgebungsfehler diagnostizieren und Änderungen rückgängig machen
Bevor Sie bei einem Fehler erneut installieren, ermitteln Sie den ausführenden Interpreter und prüfen Sie die deklarierten Paketabhängigkeiten:
python -c "import sys; print(sys.executable)"
python -m pip --version
python -m pip check
pip check meldet bei zueinander passenden Anforderungen gewöhnlich No broken requirements found. Das prüft die installierten Abhängigkeitsangaben, nicht die gesamte fachliche Funktion Ihrer Anwendung. Die Dokumentation zu pip check beschreibt auch die Fehlerfälle.
- ModuleNotFoundError: Prüfen Sie zuerst
sys.executableund installieren Sie dann mit dessen-m pip. Ein Paket in einem anderen Python behebt den Fehler nicht. - Abhängigkeiten passen nicht zusammen: Lesen Sie, welche Version welches Paket benötigt. Erproben Sie die korrigierte Zusammenstellung in einer getrennten Umgebung, statt beliebig globale Versionen zu ändern.
- Zertifikats- oder Proxyfehler: Prüfen Sie Netzwerk und Vertrauenskonfiguration. Deaktivieren Sie nicht die TLS-Zertifikatsprüfung, um die Meldung zu unterdrücken.
Eine aktivierte Umgebung verlassen Sie mit deactivate. Das löscht keine Pakete. Ein nicht mehr benötigtes Paket entfernen Sie im richtigen Projektinterpreter mit python -m pip uninstall paketname, wobei Sie paketname durch den tatsächlichen Namen ersetzen. Prüfen Sie vorher, ob andere Projektpakete davon abhängen. Bevor Sie eine Umgebung neu erstellen, sichern Sie Ihre Quellen und die Abhängigkeitsdatei außerhalb des Umgebungsordners.




