Python-Umgebungen mit venv und pip nachvollziehbar neu aufbauen

Wenn ein kleines Büro eine Python-Anwendung übernimmt oder einen Rechner neu einrichtet, sollte deren Paketbestand nachvollziehbar sein. Mit venv und pip lässt sich dafür ein kontrollierter Wiederaufbau vorbereiten. Entscheidend sind eine saubere Ausgangsumgebung, geprüfte Abhängigkeiten und Anwendungstests. Ein Paketexport allein garantiert keine universelle Reproduzierbarkeit.

1. Voraussetzungen und Arbeitsverzeichnis festlegen

Alle folgenden Unix-Beispiele gehören ausschließlich in ein separates Testprojekt, nicht in das produktive Anwendungsverzeichnis. Voraussetzung ist ein bereits installierter, gepflegter und mit dem Projekt kompatibler Python-Interpreter. Dokumentieren Sie vorab:

  • die vorgesehene Interpreterversion einschließlich Unterversion,
  • Betriebssystem und Prozessorarchitektur,
  • Projektstand, benötigte Konfiguration und verfügbare Anwendungstests.

python3 steht hier für diesen bewusst ausgewählten Interpreter. Prüfen Sie dessen Zuordnung vor Beginn; verwenden Sie bei Bedarf seinen expliziten Pfad. Ersetzen Sie weder das Betriebssystem-Python noch ändern Sie den globalen PATH. Sämtliche relativen Pfade beziehen sich auf das Stammverzeichnis des Testprojekts. Dateinamen wie requirements-snapshot.txt sind frei gewählte Beispielnamen und müssen bei Änderungen durchgängig angepasst werden.

2. Eine saubere Quellumgebung vorbereiten

Erstellen Sie für den vorgesehenen Projektstand eine eigene, zunächst saubere Umgebung:

python3 -m venv .venv-src

Installieren Sie dort ausschließlich die für das Testprojekt vorgesehenen Abhängigkeiten nach dessen Installationsanleitung. Nutzen Sie dabei ausdrücklich .venv-src/bin/python -m pip, damit nicht versehentlich eine andere Umgebung angesprochen wird. Übernehmen Sie keine ungeprüfte Sammlung aus einer gemeinsam genutzten Arbeitsumgebung und führen Sie keine pauschalen Paket-Upgrades durch.

Laut venv-Dokumentation sind Projektpakete standardmäßig isoliert. Die Umgebung bleibt jedoch an ihren Basisinterpreter gebunden und ist keine Sicherheits-Sandbox. Eine Aktivierung ist bei expliziten Interpreterpfaden nicht erforderlich. Testen Sie jetzt die Anwendung mit geeigneten Testdaten; erst danach folgt der Export.

3. Den getesteten Paketstand erfassen und prüfen

.venv-src/bin/python -m pip freeze > requirements-snapshot.txt

pip freeze meldet installierte Pakete. Es ist kein Lockfile-Solver und lässt standardmäßig bestimmte Bootstrap-Pakete aus. Die Datei ist deshalb ein Ausgangssnapshot, keine vollständige Beschreibung von Interpreter, Werkzeugen und Plattform.

Öffnen Sie den Export vor jeder Weitergabe. Prüfen Sie insbesondere editierbare Installationen, lokale Pfade und private Paket-URLs. Entfernen Sie Zugangsdaten aus weitergegebenen Dateien. Klären Sie zugleich, wie benötigte private Pakete autorisiert erreichbar bleiben; bloßes Löschen solcher Einträge macht den Wiederaufbau nicht vollständig. Halten Sie direkte und transitive Abhängigkeiten fest, statt nur die unmittelbar verwendeten Bibliotheken aufzulisten.

4. Unabhängig neu aufbauen und verifizieren

Lassen Sie .venv-src unverändert bestehen. Erzeugen Sie daneben mit einem passenden, kompatiblen Interpreter die zweite Umgebung und installieren Sie die geprüfte Liste:

python3 -m venv .venv-rebuild
.venv-rebuild/bin/python -m pip install -r requirements-snapshot.txt
.venv-rebuild/bin/python -m pip check

pip check prüft ausschließlich die deklarierte Abhängigkeitskompatibilität. Ein unauffälliges Ergebnis ersetzt weder Anwendungstests noch eine Sicherheitsprüfung. Führen Sie deshalb dieselben fachlichen Prüfungen wie in der Quellumgebung aus: etwa einen vorgesehenen Import, einen typischen Verarbeitungslauf und die Kontrolle der Ergebnisse. Starten Sie auch diese Prüfungen ausdrücklich mit .venv-rebuild/bin/python. Dokumentieren Sie Fehler und Testresultate, bevor Sie den Wiederaufbau akzeptieren.

5. Plattform und Paketdateien genauer dokumentieren

Für höhere Nachvollziehbarkeit halten Sie zusätzlich die verwendeten Versionen von Python und pip sowie Betriebssystem und Architektur fest. Nach der pip-Anleitung für wiederholbare Installationen können vollständig festgelegte direkte und transitive Abhängigkeiten sowie geprüfte Paket-Hashes den Ablauf weiter absichern. Hashes bestätigen erwartete Paketdateien, nicht deren Schadsoftwarefreiheit. Wheel-Archive können plattformspezifisch sein; ein unter anderer Architektur verfügbarer Paketstand ist daher nicht automatisch gleichwertig.

6. Rückweg sichern und Ergebnis festhalten

Behalten Sie die bisherige Umgebung sowie eine Sicherung von Anwendung und Daten, bis der neue Aufbau verifiziert ist. Bei Fehlern verwerfen Sie nur die neue Testumgebung und untersuchen die Ursache; die bisherige Arbeitsgrundlage bleibt unangetastet. Virtuelle Umgebungen werden neu erstellt, nicht verschoben oder kopiert.

Fazit: Ein brauchbarer Wiederaufbau besteht aus geprüftem Paketexport, dokumentierter Plattform und erfolgreichen Anwendungstests. Diese Kombination macht Änderungen nachvollziehbar, ohne eine Paketliste mit einer umfassenden Reproduzierbarkeitsgarantie zu verwechseln.

Ähnliche Beiträge

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert