Skip to main content
Die requirements.txt-Datei ist der Industriestandard zum Angeben und Verwalten von Abhängigkeiten in Python-Projekten. Diese Anleitung zeigt, wie du requirements.txt erstellst, konfigurierst und verwendest, um Konsistenz zwischen Entwicklungs- und Produktionsumgebungen sicherzustellen.

Was ist eine requirements.txt-Datei?

Eine requirements.txt-Datei listet alle externen Python-Pakete auf, die dein Projekt benötigt, samt ihren spezifischen Versionen. Das ermöglicht:
  • Dir und deinem Team, identische Umgebungen zu pflegen
  • Neuen Mitwirkenden, die Umgebung exakt zu reproduzieren
  • Deploy auf Square Cloud, mit den korrekten Abhängigkeiten zu funktionieren

1

Erstelle und aktiviere eine virtuelle Umgebung

Innerhalb einer virtuellen Umgebung zu arbeiten ist unerlässlich, um die Abhängigkeiten deines Projekts vom globalen Python-System isoliert zu halten. Das vermeidet Versionskonflikte und stellt Reproduzierbarkeit sicher.Erstelle die virtuelle Umgebung im Stammverzeichnis deines Projekts (verwende python3, wenn python unter macOS/Linux nicht gefunden wird):
Aktiviere sie mit einem der folgenden Befehle, je nach deinem System:Windows:
macOS/Linux:
Installiere dann die Pakete, die dein Projekt verwendet, zum Beispiel:
2

Liste die Abhängigkeiten des Projekts auf

Gib immer exakte Versionen mit == an, um Reproduzierbarkeit sicherzustellen und Fehler durch inkompatible Updates in der Produktion zu vermeiden.

Option A: Mit pip freeze generieren (Empfohlen)

Schreibe bei aktivierter virtueller Umgebung jedes installierte Paket mit seiner exakten Version in die Datei:
Innerhalb einer virtuellen Umgebung listet pip freeze nur die darin installierten Pakete auf (deine Abhängigkeiten und deren Unterabhängigkeiten), bereits mit == festgelegt.
Außerhalb einer virtuellen Umgebung listet pip freeze jedes auf deinem System installierte Paket auf. Überprüfe die Datei und entferne, was dein Projekt nicht verwendet.

Option B: Manuell erstellen

Erstelle eine requirements.txt-Datei im Stammverzeichnis deines Projekts und liste die Pakete, die dein Projekt verwendet, mit ihren Versionen auf:
requirements.txt
3

Abhängigkeiten überprüfen und validieren

Öffne die requirements.txt-Datei in deinem Texteditor und:
  1. Überprüfe die Paketliste
  2. Entferne unnötige Abhängigkeiten
  3. Aktualisiere Versionen nach Bedarf
  4. Stelle sicher, dass du exakte Versionen (mit ==) verwendest
4

Abhängigkeiten installieren

Um alle aufgeführten Abhängigkeiten zu installieren:
Dieser Befehl garantiert, dass alle Mitwirkenden und Produktionsumgebungen exakt dieselben Versionen verwenden.
5

Versionieren und teilen

Wenn requirements.txt fertig ist, kannst du:
  • Sie mit deinem Team teilen
  • Sie in die Versionskontrolle (git) aufnehmen
  • Sicherstellen, dass alle mit denselben Versionen arbeiten
  • Das Deployment auf Square Cloud vereinfachen
Wenn du dein Projekt auf Square Cloud hostest, wird die requirements.txt-Datei automatisch erkannt und ihre Abhängigkeiten werden mit pip install -r requirements.txt installiert, bevor deine App startet.

Best Practices und Tipps

  • Aktuell halten: Überprüfe und aktualisiere requirements.txt regelmäßig, wenn du neue Abhängigkeiten hinzufügst
  • Exakte Versionen verwenden: Verwende immer == statt >, >= oder keiner Version, um Überraschungen in der Produktion zu vermeiden
  • pip freeze überprüfen: Wenn du pip freeze verwendest, überprüfe die Datei vor dem Committen, da sie unnötige begleitende Pakete enthalten kann
  • Versionierung: Committe requirements.txt in git, um Änderungen an Abhängigkeiten nachzuverfolgen
  • Isolierte Umgebung: Pflege eine virtuelle Umgebung pro Projekt, um globale Konflikte zu vermeiden
  • Lokal testen: Teste die Datei vor dem Deploy mit pip install -r requirements.txt in einer neuen Umgebung

Nächste Schritte

Wenn deine requirements.txt-Datei konfiguriert ist:
  1. Committe sie in dein Git-Repository.
  2. Hoste dein Projekt mit dem Leitfaden zur Python-Runtime oder folge einem Framework-Leitfaden: Django, Flask oder FastAPI.
  3. Automatisch aus GitHub deployen, bei jedem Push.