Verwalten von erforderlichen Python-Paketen mit „requirements.txt“

Wenn Sie Ihr Python-Projekt für andere freigeben oder ein Buildsystem verwenden, um Ihre Python-Anwendung zu erstellen, müssen Sie alle erforderlichen externen Pakete angeben. Wenn Sie planen, Ihr Projekt an andere Speicherorte zu kopieren, an denen Sie eine Umgebung wiederherstellen müssen, müssen Sie auch die erforderlichen abhängigen Pakete definieren.

Der empfohlene Ansatz zum Angeben externer abhängiger Python-Pakete ist die Verwendung einer Anforderungsdatei (readthedocs.org). Diese Datei enthält eine Liste der pip-Befehle, die alle erforderlichen Versionen abhängiger Pakete für Ihr Projekt installieren. Der gängigste Befehl ist pip freeze > requirements.txt. Dieser Befehl speichert die aktuelle Paketliste Ihrer Umgebung in der requirements.txt-Datei.

Eine Anforderungsdatei enthält genaue Versionen aller installierten Pakete. Mithilfe von Anforderungsdateien können Sie die Anforderungen einer Umgebung fixieren. Durch die Verwendung präziser Paketversionen können Sie Ihre Umgebung problemlos auf einem anderen Computer reproduzieren. Die Anforderungsdateien enthalten Pakete, auch wenn sie mit einem Versionsbereich, als Abhängigkeit eines anderen Pakets oder mit einem anderen Installationsprogramm als pip installiert werden.

Voraussetzungen

Technisch gesehen kann jeder Dateiname zum Nachverfolgen von Anforderungen verwendet werden. Visual Studio bietet jedoch spezifische Unterstützung für die Anforderungsdatei mit dem Namen „requirements.txt“. Sie können das -r <full path to file>-Argument verwenden, wenn Sie ein Paket installieren, um Ihren bevorzugten Namen für die Datei anzugeben.

Installieren von Abhängigkeiten, die in requirements.txt aufgelistet sind

Wenn Sie ein Projekt laden, das über eine requirements.txt-Datei verfügt, können Sie alle Paketabhängigkeiten installieren, die in der Datei aufgeführt sind.

  1. Erweitern Sie im Projektmappen-Explorer das Projekt, und erweitern Sie dann den Knoten Python-Umgebungen.

  2. Suchen Sie den Umgebungsknoten, für den Sie die Pakete installieren möchten. Klicken Sie mit der rechten Maustaste auf den Knoten, und wählen Sie Installieren aus „requirements.txt“ aus.

    Screenshot, der zeigt, wie Sie Python-Pakete aus einer Textdatei mit Anforderungen in Visual Studio 2019 installieren.

    Screenshot, der zeigt, wie Sie Python-Pakete aus einer Textdatei mit Anforderungen in Visual Studio 2022 installieren.

  3. Sie können den Paketinstallationsprozess im Fenster Ausgabe überwachen:

    Screenshot, der die Ausgabe der Installation der Python-Pakete aus einer Textdatei mit den Anforderungen zeigt.

    Die Ausgabe listet alle erforderlichen Pakete auf, die installiert sind, zusammen mit allen erforderlichen Updates für betroffene pip-Befehle und der Verfügbarkeit neuerer pip-Versionen.

Installieren von Abhängigkeiten in einer virtuellen Umgebung

Sie können die Python-Paketabhängigkeiten auch in einer vorhandenen virtuellen Umgebung installieren.

  1. Erweitern Sie im Projektmappen-Explorer Ihr Projekt, und erweitern Sie dann den Knoten Python-Umgebungen .

  2. Suchen Sie den virtuellen Umgebungsknoten, für den Sie die Pakete installieren möchten. Klicken Sie mit der rechten Maustaste auf den Knoten, und wählen Sie Installieren aus „requirements.txt“ aus.

Wenn Sie eine virtuelle Umgebung erstellen müssen, lesen Sie Verwenden virtueller Umgebungen.

Generieren der Datei „requirements.txt“

Wenn alle erforderlichen Python-Pakete für Ihr Projekt bereits in einer Umgebung installiert sind, können Sie die requirements.txt-Datei in Visual Studio generieren.

  1. Erweitern Sie im Projektmappen-Explorer Ihr Projekt, und erweitern Sie dann den Knoten Python-Umgebungen .

  2. Suchen Sie den Umgebungsknoten, für den Sie die Anforderungsdatei generieren möchten. Klicken Sie mit der rechten Maustaste auf den Knoten, und wählen Sie requirements.txt generieren aus.

    Screenshot, der zeigt, wie Sie eine Anforderungs-Textdatei für Python-Paketabhängigkeiten in Visual Studio 2019 erzeugen.

    Screenshot, der zeigt, wie Sie eine Anforderungs-Textdatei für Python-Paket-Abhängigkeiten in Visual Studio 2022 erzeugen.

Aktualisieren oder Hinzufügen von Einträgen zu einer vorhandenen requirements.txt-Datei

Wenn die requirements.txt-Datei bereits vorhanden ist, zeigt Visual Studio eine Eingabeaufforderung mit mehreren Optionen an:

Screenshot der Eingabeaufforderung, die angezeigt wird, wenn die Textdatei mit den Anforderungen bereits vorhanden ist, mit Optionen zum Aktualisieren oder Hinzufügen von Einträgen oder zum Ersetzen der Datei.

  • Ersetzen der gesamten Datei: Überschreiben Sie alle Elemente, Kommentare und Optionen, die in der requirements.text-Datei definiert sind.
  • Aktualisieren vorhandener Einträge: Aktualisieren Sie die Versionsbezeichner in der requirements.text-Datei, damit sie der derzeit installierten Version entsprechen.
  • Aktualisieren und Hinzufügen von Einträgen: Aktualisieren Sie vorhandene Anforderungen in der requirements.text-Datei, und fügen Sie alle neuen Paketanforderungen am Ende der Datei an.

Visual Studio führt pip aus, um die aktuellen Paketanforderungen für die Umgebung zu erkennen, und aktualisiert dann ihre requirements.txt-Datei basierend auf Ihrer Auswahl.

Manuelles Installieren der Paketabhängigkeiten

Wenn pip eine Paketabhängigkeit nicht installiert, die in Ihrer requirements.txt-Datei enthalten ist, schlägt die gesamte Installation fehl.

Sie haben zwei Möglichkeiten, um dieses Problem zu lösen:

  • Bearbeiten Sie die requirements.txt-Datei manuell, um das fehlgeschlagene Paket auszuschließen, und führen Sie dann den Installationsprozess erneut aus.

  • Verwenden Sie pip-Befehlsoptionen, um auf eine installierbare Version des Pakets zu verweisen.

Aktualisieren der Anforderungsdatei mit pip wheel

Wenn Sie den pip wheel-Befehl zum Kompilieren einer Abhängigkeit verwenden, können Sie die --find-links <path>-Option Ihrer requirements.txt-Datei hinzufügen.

  1. Rufen Sie den pip wheel-Befehl auf, um die Liste der erforderlichen Abhängigkeiten zu kompilieren:

    pip wheel azure
    

    Die Ausgabe zeigt die für die gesammelten Pakete gebauten wheels:

    Downloading/unpacking azure
        Running setup.py (path:C:\Project\env\build\azure\setup.py) egg_info for package azure
    
    Building wheels for collected packages: azure
        Running setup.py bdist_wheel for azure
        Destination directory: c:\project\wheelhouse
    Successfully built azure
    Cleaning up...
    
  2. Fügen Sie die find-links-Optionen no-index zusammen mit der Paketversionsanforderung an Ihre requirements.txt-Datei an:

    type requirements.txt
    --find-links wheelhouse
    --no-index
    azure==0.8.0
    
  3. Führen Sie den pip-Installationsprozess mit der aktualisierten Anforderungsdatei aus:

    pip install -r requirements.txt -v
    

    Die Ausgabe verfolgt den Fortschritt des Installationsvorgangs:

    Downloading/unpacking azure==0.8.0 (from -r requirements.txt (line 3))
        Local files found: C:/Project/wheelhouse/azure-0.8.0-py3-none-any.whl
    Installing collected packages: azure
    Successfully installed azure
    Cleaning up...
        Removing temporary dir C:\Project\env\build...