> ## Documentation Index
> Fetch the complete documentation index at: https://docs.squarecloud.app/llms.txt
> Use this file to discover all available pages before exploring further.

# So erstellst du deine requirements.txt-Datei

> Vollständige Anleitung zur requirements.txt-Datei in Python: Lerne, wie du sie erstellst, Abhängigkeiten mit pip freeze auflistest, Versionen festlegst und dein Projekt für die Produktion vorbereitest.

# 📋 requirements.txt-Datei für Python

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

***

<Steps>
  <Step title="Aktiviere die 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.

    Aktiviere deine virtuelle Umgebung mit einem der folgenden Befehle, je nach deinem System:

    **Windows:**

    ```bash theme={null}
    venv\Scripts\activate
    ```

    **macOS/Linux:**

    ```bash theme={null}
    source venv/bin/activate
    ```
  </Step>

  <Step title="Liste die Abhängigkeiten des Projekts auf">
    <Warning>
      Gib immer exakte Versionen mit `==` an, um Reproduzierbarkeit sicherzustellen und Fehler durch inkompatible Updates in der Produktion zu vermeiden.
    </Warning>

    ### Option A: Manuell erstellen (Empfohlen)

    Erstelle eine `requirements.txt`-Datei im Stammverzeichnis deines Projekts und liste alle externen Pakete mit ihren Versionen auf:

    ```plaintext requirements.txt theme={null}
    discord.py==2.3.0
    requests==2.31.0
    python-dotenv==1.0.0
    ```

    ### Option B: Automatisch mit pip freeze generieren

    Nachdem du die Abhängigkeiten in deiner virtuellen Umgebung installiert hast, kannst du die Datei automatisch generieren. Es gibt zwei Hauptwege:

    **Option B1: `pip freeze` verwenden (schließt alles ein)**

    ```bash theme={null}
    pip freeze > requirements.txt
    ```

    <Warning>
      Vorsicht: `pip freeze` schließt alle global installierten Pakete ein, was Pakete umfassen kann, die für dein Projekt unnötig sind. Überprüfe die Datei nach dem Generieren und entferne Abhängigkeiten, die nicht zwingend notwendig sind.
    </Warning>

    **Option B2: `pipdeptree` oder `pip freeze` mit Filterung verwenden (Empfohlen)**

    Um NUR die Abhängigkeiten deines Projekts zu erfassen (ohne begleitende Umgebungspakete), verwende:

    ```bash theme={null}
    pip freeze --user > requirements.txt
    ```

    Oder, für eine sauberere Lösung, installiere `pipdeptree`:

    ```bash theme={null}
    pip install pipdeptree
    pipdeptree -p your_project > requirements.txt
    ```

    Alternative: Verwende eine manuelle Listenprüfung oder überprüfe, welches Paket speziell für dein Projekt installiert wurde:

    ```bash theme={null}
    pip list | grep -i "your-package"
    ```

    <Note>
      Wenn du in einer virtuellen Umgebung arbeitest (empfohlen), funktioniert `pip freeze` einwandfrei, da die Umgebung isoliert ist und nur die Abhängigkeiten deines Projekts enthält.
    </Note>
  </Step>

  <Step title="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
  </Step>

  <Step title="Abhängigkeiten installieren">
    Um alle aufgeführten Abhängigkeiten zu installieren:

    ```bash theme={null}
    pip install -r requirements.txt
    ```

    Dieser Befehl garantiert, dass alle Mitwirkenden und Produktionsumgebungen exakt dieselben Versionen verwenden.
  </Step>

  <Step title="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 alle Abhängigkeiten werden während des Builds installiert.
  </Step>
</Steps>

***

## 💡 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 auf **Square Cloud**.
3. Richte automatischen Deploy über GitHub ein.
4. Willkommen beim professionellen Hosting von Python-Anwendungen!

Eine gut strukturierte `requirements.txt`-Datei ist die Grundlage für jede erfolgreiche Python-Anwendung und stellt sicher, dass deine Anwendung auf Square Cloud einwandfrei funktioniert.
