Veröffentlichen und Nutzen von Python-Paketen mithilfe der Befehlszeile (CLI)

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019

Mit Azure Artifacts können Sie Python-Pakete für Ihr Team oder Ihre Organisation erstellen, hosten und freigeben. Sie können Python-Pakete mithilfe eines Azure Artifacts-Feeds über die Befehlszeile in Ihrer lokalen Entwicklungsumgebung veröffentlichen und nutzen.

In diesem Artikel wird Folgendes behandelt:

  • Erstellen Sie einen Azure Artifacts-Feed.
  • Richten Sie die Authentifizierung mit dem Python Artifacts-Keyring-Paket oder einem persönlichen Zugriffstoken (PAT) ein.
  • Veröffentlichen Sie Python-Pakete in Ihrem Feed.
  • Verwenden Sie Python-Pakete aus Ihrem Feed.

Informationen zum Veröffentlichen und Nutzen von Paketen in Ihren Azure-Pipelines finden Sie unter Veröffentlichen von Python-Paketen mit Azure-Pipelines.

Voraussetzungen

Um die folgenden Schritte auszuführen, müssen Sie folgendes haben:

  • Eine Azure DevOps-Organisation. Erstellen Sie ein kostenloses Konto.
  • Ein persönliches Zugriffstoken (PAT) mit Verpackungslesebereich>. Informationen zum Erstellen finden Sie unter "Erstellen eines PAT".
  • Ein Azure DevOps-Projekt. Wenn Sie kein Projekt haben, erstellen Sie ein Projekt.
  • Python 3.9 oder höher auf Ihrem lokalen Computer installiert. Laden Sie Python hier herunter.
  • Pip 24.0 und Twine 5.0.0 oder höher.
  • Ein Python-Paket, das von Ihrem lokalen Computer in Ihrem Feed veröffentlicht werden soll.
  • Bei Verwendung des Python-Beispielpakets:
    • Ein GitHub-Konto. Sofern nicht bereits geschehen, können Sie ein kostenloses GitHub-Konto erstellen.
    • git installed on your local machine.
  • Ein GitHub-Konto. Sofern nicht bereits geschehen, können Sie ein kostenloses GitHub-Konto erstellen.
  • Zugriff auf eine Azure DevOps Server-Sammlung.
  • Ein persönliches Zugriffstoken (PAT) mit Verpackungslesebereich>. Informationen zum Erstellen finden Sie unter "Erstellen eines PAT".
  • Ein Azure DevOps-Projekt. Wenn Sie kein Projekt haben, erstellen Sie ein Projekt.
  • Python 3.9 oder höher in Ihrer lokalen Entwicklungsumgebung installiert.
  • Pip 24.0 und Twine 5.0.0 oder höher.
  • Bei Verwendung des Python-Beispielpakets:
    • Ein GitHub-Konto. Sofern nicht bereits geschehen, können Sie ein kostenloses GitHub-Konto erstellen.
    • git installed on your local machine.

Erstellen Sie einen Azure Artifacts-Feed

Wenn Sie keinen Feed haben, führen Sie die folgenden Schritte aus, um einen feed zu erstellen.

  1. Melden Sie sich bei Ihrer Azure DevOps-Organisation an, und wechseln Sie dann zu Ihrem Projekt.

  2. Wählen Sie Artefakte und dann Ihren Feed erstellen aus.

    A screenshot showing how to create a feed.

  3. Geben Sie die folgenden Informationen für Ihren Feed ein:

    1. Geben Sie einen beschreibenden Namen für Ihren Feed ein.
    2. Definieren Sie die Sichtbarkeit (die angibt, wer Pakete innerhalb des Feeds anzeigen kann).
    3. Wählen Sie aus, ob Pakete aus öffentlichen Quellen wie pypi.org verwendet werden sollen.
    4. Geben Sie den Bereich Ihres Feeds an.
  4. Klicken Sie auf Erstellen.

  1. Wechseln Sie zu Ihrer Azure DevOps-Sammlung, wählen Sie Ihr Projekt aus.

  2. Wählen Sie Artefakte und dann Ihren Feed erstellen aus.

    A screenshot showing how to create a feed in DevOps Server.

  3. Geben Sie die folgenden Informationen für Ihren Feed ein:

    1. Geben Sie einen beschreibenden Namen für Ihren Feed ein.
    2. Definieren Sie die Sichtbarkeit (die angibt, wer Pakete innerhalb des Feeds anzeigen kann).
    3. Wählen Sie aus, ob Pakete aus öffentlichen Quellen wie pypi.org verwendet werden sollen.
    4. Geben Sie den Bereich Ihres Feeds an.
  4. Klicken Sie auf Erstellen.

  1. Wechseln Sie zu Ihrer Azure DevOps-Sammlung, wählen Sie Ihr Projekt aus.

  2. Wählen Sie Artefakte und dann "Feed erstellen" aus, um einen neuen Feed zu erstellen.

  3. Geben Sie die folgenden Informationen für Ihren Feed ein:

    1. Geben Sie einen beschreibenden Namen für Ihren Feed ein.
    2. Definieren Sie die Sichtbarkeit (die angibt, wer Pakete innerhalb des Feeds anzeigen kann).
    3. Wählen Sie aus, ob Pakete aus öffentlichen Quellen wie pypi.org verwendet werden sollen.
    4. Geben Sie den Bereich Ihres Feeds an.
  4. Klicken Sie auf Erstellen.

  1. Wechseln Sie zu Ihrer Azure DevOps-Sammlung, wählen Sie Ihr Projekt aus.

  2. Wählen Sie Artefakte und dann "Feed erstellen" aus, um einen neuen Feed zu erstellen.

  3. Geben Sie die folgenden Informationen für Ihren Feed ein:

    1. Geben Sie einen beschreibenden Namen für Ihren Feed ein.
    2. Definieren Sie die Sichtbarkeit (die angibt, wer Pakete innerhalb des Feeds anzeigen kann).
    3. Wählen Sie aus, ob Pakete aus öffentlichen Quellen wie pypi.org verwendet werden sollen.
  4. Klicken Sie auf Erstellen.

Erstellen eines lokalen Python-Pakets

Sie benötigen ein Python-Paket, um sie in Ihrem Feed zu veröffentlichen. Wenn Sie kein Paket zum Veröffentlichen haben, können Sie ein Python-Beispielpaket von GitHub klonen.

Klonen des Python-Beispielpakets

Führen Sie die folgenden Schritte aus, um das Python-Beispielpaket von GitHub zu verwenden.

  1. Wechseln Sie zum folgenden GitHub-Repository:

    https://github.com/microsoft/python-package-template
    
  2. Fork des Repositorys zu Ihrem GitHub-Konto

  3. Wechseln Sie zu Ihrem Verzweigungs-Repository, und wählen Sie "Code" aus.

  4. Kopieren Sie die URL Ihres Verzweigungs-Repositorys.

  5. Klonen Sie das Repository von einer CLI auf Ihrem lokalen Computer mithilfe der URL, die Sie aus Ihrem Verzweigungs-Repository kopiert haben.

    git clone <REPOSIORY_URL>
    
  6. Ändern Sie das Verzeichnis in Ihr geklontes Repository.

    cd python-package-template
    

Erstellen Des Pakets

Führen Sie zum Erstellen des Rads und der Quellverteilung die folgenden Befehle in Ihrem Projektverzeichnis aus:

pip install --upgrade build
python -m build

Wenn Ihr Python-Projekt über eine setup.py Datei verfügt, können Sie den folgenden Befehl verwenden, um Ihr Paket zu erstellen:

python setup.py sdist bdist_wheel

Verbindung mit Feed herstellen

Es gibt zwei haupt möglichkeiten, eine Verbindung mit einem Feed herzustellen, um Ihre Python-Pakete zu veröffentlichen oder zu nutzen:

  1. Verwenden Sie das Artefakt-Keyring-Paket, das automatisch die Authentifizierung für Sie einrichtet.
  2. Manuelles Einrichten von Anmeldeinformationen mit einem PAT.

Hinweis

Artifacts-Keyring wird für neuere Versionen von Ubuntu nicht unterstützt.

Hinweis

Wenn Ihre Organisation eine Firewall oder einen Proxy-Server verwendet, stellen Sie sicher, dass Sie Azure Artifacts-Domänen-URLs und IP-Adressen zulassen.

Einrichten von Artefakten-Keyring für die Authentifizierung

Das Artefakt-Keyring-Paket funktioniert mit dem Python-Keyringpaket, damit Sie die Authentifizierung einrichten können, um Ihre Python-Pakete in Und aus Ihrem Feed zu veröffentlichen und zu nutzen. Sowohl Pip als auch Twine verwenden das Python-Schlüsselringpaket, um Anmeldeinformationen zu finden.

Wichtig

Sie müssen Pip 19.2 und Twine 1.13.0 oder höher haben, um Artefakte-Keyring zu verwenden. Weitere Informationen finden Sie unter Nutzungsanforderungen.

Wenn Sie sich für die Verwendung von Artefakten entscheiden, müssen Sie das Paket installieren, bevor Sie es verwenden können.

Führen Sie in einem Eingabeaufforderungsfenster mit erhöhten Rechten den folgenden Befehl aus, um das Artefakt-Keyringpaket zu installieren:

pip install artifacts-keyring

Veröffentlichen von Python-Paketen

Sie können Python-Pakete mit dem Artefakt-Keyringpaket oder der PAT-Authentifizierung in Ihrem Feed veröffentlichen.

Veröffentlichen von Paketen mit Artefakten-Keyring

  1. Wählen Sie Verbinden aus, um aus Ihrem Feed zu feeden.

    A screenshot highlighting the connect to feed.

  2. Wählen Sie Twine aus, und kopieren Sie die Repository-URL aus dem Abschnitt "Project Setup".

    A screenshot of instructions to connect to feed with twine.

  3. Führen Sie zum Veröffentlichen eines Pakets in Ihrem Feed den folgenden Befehl aus, indem Sie FEED_URL> durch die Repository-URL ersetzen<, die Sie aus dem Verbinden in das Feeddialogfeld kopiert haben:

    twine upload --repository-url <FEED_URL> dist/*
    

Veröffentlichen von Paketen mit PAT-Authentifizierung

Verwenden Sie Twine, um Ihr Paket in Ihren Azure Artifacts-Feed hochzuladen.

  1. Wechseln Sie zu Ihrem Azure DevOps-Projekt, und wählen Sie Artefakte aus.

  2. Wählen Sie Ihren Feed aus, und wählen Sie Verbinden zum Feed aus.

    A screenshot highlighting the connect to feed.

  3. Wählen Sie "Twine " unter dem Abschnitt "Python " aus.

    A screenshot highlighting the twine package type.

  4. Stellen Sie auf Ihrem Entwicklungscomputer sicher, dass Twine installiert ist.

    pip install --upgrade twine
    
  5. Befolgen Sie die Anweisungen im Abschnitt "Project-Setup ", um Die .pypirc Datei einzurichten.

    A screenshot highlighting the `.pyirc` file content.

  6. Um zu vermeiden, dass Sie jedes Mal, wenn Sie ein Paket veröffentlichen, Ihr persönliches Zugriffstoken eingeben müssen, können Sie ihre Anmeldeinformationen zur .pypirc Datei hinzufügen. Stellen Sie sicher, dass Sie Ihr persönliches Zugriffstoken nicht in einem öffentliches Repository überprüfen.

    Beispiel für eine .pypirc Datei mit Anmeldeinformationen:

    [distutils]
    Index-servers =
        <FEED_NAME>
    
    [<FEED_NAME>]
    Repository = <FEED_URL>
    username = <FEED_NAME>
    password = <YOUR_PERSONAL_ACCESS_TOKEN>
    
  7. Führen Sie zum Hochladen des Pakets den folgenden Befehl in Ihrem Projektverzeichnis aus, indem <Sie FEED_NAME> durch Ihren Feednamen ersetzen. Unter Windows müssen Sie möglicherweise den pypirc Dateispeicherort mit der --config-file Option angeben.

    twine upload --repository <FEED_NAME> dist/*
    

Verwenden von Python-Paketen

Sie können Python-Pakete aus Ihrem Feed mithilfe des Artefakt-Keyringpakets oder der PAT-Authentifizierung nutzen.

Nutzen von Paketen mit Artefakten-Keyring

  1. Wählen Sie in Ihrem Projekt Artefakte und dann Ihren Feed aus.

  2. Wählen Sie Connect to feed (Mit Feed verbinden) aus.

    A screenshot highlighting the connect to feed button.

  3. Wählen Sie "Pip" unter dem Abschnitt "Python" aus.

    A screenshot of pip selection in Connect to feed.

  4. Bereiten Sie Ihre lokale Python-Umgebung vor.

    1. Stellen Sie sicher, dass Pip installiert ist und auf dem neuesten Stand ist:

      python -m pip install --upgrade pip
      
    2. So erstellen und aktivieren Sie eine virtuelle Python-Umgebung:

      python -m venv myenv
      myenv/Scripts/activate
      
  5. Kopieren Sie den index-urlAbschnitt "Project-Setup" des Verbinden in das Feeddialogfeld.

    A screenshot of the index-url in the Connect to feed dialog.

  6. Um ein Paket aus Ihrem Feed zu installieren, führen Sie den folgenden Befehl aus, indem Sie PACKAGE_NAME durch den Paketnamen aus Ihrem Feed ersetzen <und <INDEX_URL> mit der Index-URL, die Sie aus dem Dialogfeld "Verbinden in feed" kopiert haben:>

    pip install <PACKAGE_NAME> --index-url <INDEX_URL>
    

Wenn Sie zum ersten Mal eine Verbindung mit Azure DevOps herstellen, werden Sie zur Eingabe von Anmeldeinformationen aufgefordert. Geben Sie Ihren Benutzernamen (eine beliebige Zeichenfolge) und Ihr persönliches Zugriffstoken in die entsprechenden Felder ein. Die Anmeldeinformationen werden lokal zwischengespeichert und verwendet, um Sie bei der nächsten Verwendung des Diensts automatisch anzumelden.

Nutzen von Paketen mit PAT-Authentifizierung

  1. Wechseln Sie zu Ihrem Azure DevOps-Projekt, und wählen Sie Artefakte aus.

  2. Wählen Sie Ihren Feed aus, und wählen Sie Verbinden zum Feed aus.

    A screenshot highlighting the connect to feed button.

  3. Wählen Sie "Pip" unter dem Abschnitt "Python" aus.

    A screenshot highlighting the pip package type.

  4. Bereiten Sie Ihre lokale Python-Umgebung vor.

    1. Stellen Sie sicher, dass Pip installiert ist und auf dem neuesten Stand ist:

      python -m pip install --upgrade pip
      
    2. Erstellen und Aktivieren einer virtuellen Python-Umgebung:

      python -m venv myenv
      myenv/Scripts/activate
      
  5. Fügen Sie dem Stammverzeichnis Ihrer virtuellen Umgebung eine pip.ini (Windows) oder eine Pip.conf-Datei (Mac/Linux) hinzu. Kopieren Sie den Inhalt aus dem Abschnitt "Project-Setup" des Verbinden zum Feeddialogfeld, und fügen Sie ihn ihrer datei pip.ini oder pip.conf hinzu.

    A screenshot highlighting the pip.ini file content.

  6. Um zu vermeiden, dass Sie jedes Mal, wenn Sie ein Paket aus Ihrem Feed installieren, Ihr persönliches Zugriffstoken eingeben müssen, können Sie Ihre Anmeldeinformationen zur Datei pip.ini oder pip.conf hinzufügen. Stellen Sie sicher, dass Sie Ihr persönliches Zugriffstoken nicht in einem öffentliches Repository überprüfen.

    Beispiel für eine pip.ini - oder pip.conf-Datei mit Anmeldeinformationen:

    [global]
    extra-index-url=https://<FEED_NAME>:<YOUR_PERSONAL_ACCESS_TOKEN>@<FEED_URL>
    
  7. Führen Sie zum Installieren des Pakets den folgenden Befehl aus, indem Sie PACKAGE_NAME> durch den Paketnamen aus Ihrem Feed ersetzen<.

    pip install <PACKAGE_NAME>