TATECHATLAS
◎ Deutsch
Programmierung

Eine Python-Umgebung anlegen, ohne Abhängigkeiten zu vermischen

Ein reproduzierbarer Projektstart und eine schnelle Prüfung des von pip verwendeten Interpreters.

Auf dieser Seite

Legen Sie für jedes Projekt eine eigene virtuelle Umgebung an. Installieren Sie Pakete mit deren Python-Interpreter, damit die Abhängigkeiten anderer Projekte und der Systeminstallation unverändert bleiben.

Zuerst die passende Python-Version wählen

Eine virtuelle Umgebung trennt Pakete, hängt aber von dem Python ab, mit dem sie erstellt wurde. Prüfen Sie zuerst die Projektanforderungen. Sind mehrere Versionen installiert, wählen Sie den Interpreter ausdrücklich, statt sich auf die Bedeutung von python zu verlassen.

Erstellen Sie .venv im Projektverzeichnis und speichern Sie den Anwendungscode daneben. Die Umgebung soll bei einem Rechner- oder Versionswechsel neu erstellt werden können. Das folgende Beispiel gilt für Linux und macOS; manche Linux-Distributionen benötigen zusätzlich ein Systempaket für venv.

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

Windows PowerShell: Aktivierung ist optional

Unter Windows verwendet py -m venv .venv den vom Launcher gewählten Interpreter. Eine bestimmte installierte Version lässt sich beispielsweise mit py -3.12 -m venv .venv auswählen. Aktivieren Sie anschließend mit dem PowerShell-Befehl unten.

Blockiert die Ausführungsrichtlinie Activate.ps1, rufen Sie python.exe aus der Umgebung direkt auf. Für eine Paketinstallation muss die Richtlinie nicht geändert werden. Aktivierung verändert lediglich die aktuelle Shell; die Umgebung funktioniert auch ohne sie.

py -m venv .venv
.\.venv\Scripts\Activate.ps1

# Direct use without activation:
.\.venv\Scripts\python.exe -m pip --version

Python und pip auf dieselbe Umgebung prüfen

Der Zusatz .venv in der Eingabeaufforderung hilft, doch sys.executable zeigt den tatsächlich verwendeten Interpreter. Der Pfad muss in das .venv dieses Projekts führen. python -m pip --version zeigt zusätzlich den Installationsort von pip. Prüfen Sie im Terminal, das die Anwendung wirklich startet.

Wählen Sie denselben Interpreter im Editor. ModuleNotFoundError entsteht häufig, wenn ein Terminal ein Paket installiert und ein anderer Interpreter die Anwendung startet. Bei Notebooks ist auch der ausgewählte Kernel entscheidend.

python -c "import sys; print(sys.executable)"
python -m pip --version

Die vorgesehenen Projektabhängigkeiten installieren

Wenn requirements.txt vorhanden ist, installieren Sie diese Datei mit dem Python der Umgebung. Für ein neues Django-Projekt installiert python -m pip install Django das Framework dort. In einem bestehenden Projekt verwenden Sie dessen Abhängigkeiten, damit vorgesehene Versionen erhalten bleiben.

Festgelegte Versionen erleichtern die Wiederholung. pip freeze listet installierte Distributionen, beschreibt aber weder Betriebssystem noch Python-Version und kann vorübergehende Entwicklungswerkzeuge enthalten. Prüfen Sie die Ausgabe, bevor sie als verbindliche Projektliste dient.

python -m pip install -r requirements.txt
python -m pip check

Auf anderen Rechnern neu erstellen

Nehmen Sie .venv weder in Git noch in Bereitstellungsarchive auf. Absolute Interpreterpfade und plattformspezifische Pakete machen das Kopieren zwischen Windows und Linux unzuverlässig. Übertragen Sie Quellcode und Abhängigkeiten und erstellen Sie die Umgebung am Ziel neu.

Ein Dienst oder geplanter Auftrag kann den Interpreter über seinen vollständigen Pfad aufrufen. Eine aktivierte Shell muss dafür nicht offen bleiben. Der Startbefehl dokumentiert so direkt, welches Python verwendet wird.

Wenn das Paket weiterhin nicht gefunden wird

Fehlt pip in der Umgebung, versuchen Sie deren Python mit -m ensurepip --upgrade, sofern die Distribution ensurepip unterstützt. Wurde die Umgebung mit einer falschen Python-Version erstellt, erstellen Sie sie neu, statt sie nachträglich umzubauen.

Vergleichen Sie sys.executable, den pip-Pfad und den Interpreter des Editors. Lesen Sie den Installationsfehler zuerst: Ein fehlgeschlagener Build oder eine inkompatible Python-Version ist ein anderes Problem als das falsche Zielverzeichnis. deactivate beendet die Aktivierung in der aktuellen Shell.

python -m pip show Django
deactivate

Was Sie prüfen sollten

  • Quellcode außerhalb von .venv speichern.
  • python -m pip mit dem richtigen Interpreter ausführen.
  • Das Umgebungsverzeichnis nicht in Git aufnehmen.

Eine Python-Installation mit venv ist erforderlich. Die Aktivierung hängt von der Shell ab.

Quellen

  1. Python: venv ↗
  2. Python Packaging User Guide ↗
  3. pip user guide ↗
  4. Python: sys ↗
  5. Python: ensurepip ↗
Nach oben ↑