Python-Pakete verwalten

Auf dieser Seite wird beschrieben, wie Sie Python-Pakete und Paketversionen hinzufügen, aufrufen und löschen.

Hinweise

  1. Installieren und initialisieren Sie die Google Cloud CLI.

    Für die Ausführung von Befehlen für Python-Repositories ist die Google Cloud CLI-Version 354.0.0 oder höher erforderlich. Sie können die Version mit dem folgenden Befehl prüfen:

    gcloud version
    
  2. Wenn das Ziel-Repository nicht vorhanden ist, erstellen Sie ein neues Python-Paket-Repository.

  3. Prüfen Sie, ob Python 3 installiert ist. Eine Installationsanleitung finden Sie imGoogle Cloud Tutorial zum Einrichten von Python.

  4. (Optional) Konfigurieren Sie die Standardeinstellungen für gcloud-Befehle.

  5. Wenn Sie die Schlüsselbundauthentifizierung mit gcloud-Anmeldedaten verwenden, melden Sie sich mit Ihrem Nutzerkonto oder Dienstkonto in der Google Cloud CLI an.

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Repository zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Verwalten von Paketen benötigen:

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

Pakete hinzufügen

Repository-Modi:Standard

Wenn Sie ein Python-Projekt erstellen, werden die Verteilungsdateien in einem Unterverzeichnis dist in Ihrem Projekt gespeichert. Anschließend können Sie Twine verwenden, um Pakete in ein Standardrepository hochzuladen.

Wir empfehlen die folgenden Best Practices für Ihre Pakete:

  • Verwenden Sie eindeutige Namen für Ihre privaten Pakete, damit sie nicht mit Paketnamen auf pypi.org übereinstimmen, insbesondere wenn Ihre pip-Konfiguration mehrere Paketindexe enthält.
  • Verwenden Sie für die Versionsnummern Ihres Pakets die Versions-ID-Spezifikation in PEP 440. Standardmäßig installiert pip nur stabile Releases. Anhand der Versionskennung wird zwischen stabilen Versionen und Vorabversionen unterschieden und alle Anforderungen für die zu installierende Version werden geparst.

So fügen Sie ein Paket hinzu:

  1. Installieren Sie Twine.

    pip install twine
    
  2. Wechseln Sie in das Verzeichnis Ihres Python-Projekts.

  3. Laden Sie die Vertriebsdateien aus dem Unterverzeichnis dist des Projekts in das Repository hoch. Führen Sie dazu diesen Befehl aus:

    twine upload dist/*
    

    Mit dem Flag --repository-url können Sie ein bestimmtes Repository angeben.

    twine upload --repository-url https://LOCATION-python.pkg.dev/PROJECT/REPOSITORY/ dist/*
    

Pakete und Versionen ansehen

Repository-Modi:Standard, Remote

To view packages and package versions using the Google Cloud console or gcloud:

Console

  1. Open the Repositories page in the Google Cloud console.

    Open the Repositories page

  2. In the repository list, click the appropriate repository.

    The Packages page lists the packages in the repository.

  3. Click a package to view versions of the package.

gcloud

To list packages in a repository, run the following command:

gcloud artifacts packages list [--repository=REPOSITORY] [--location=LOCATION]

Replace the following:

  • REPOSITORY is the name of the repository. If you configured a default repository, you can omit this flag to use the default.
  • LOCATION is the regional or multi-regional location of the repository. If you configured a default location, then you can omit this flag to use the default.

To view versions of a package, run the following command:

gcloud artifacts versions list --package=PACKAGE \
    [--repository=REPOSITORY] [--location=LOCATION]

Replace the following:

  • PACKAGE is the ID of the package or fully qualified identifier for the package.
  • REPOSITORY is the name of the repository. If you configured a default repository, then you can omit this flag to use the default.
  • LOCATION is the regional or multi-regional location of the repository. Use this flag to view repositories in a specific location. If you configured a default location, then you can omit this flag to use the default.

Bei Remote-Repositories sollte die zurückgegebene Liste alle direkten und transitiven Abhängigkeiten enthalten.

Dateien auflisten

Repository-Modi:Standard, Remote

Sie können Dateien in einem Repository, Dateien in allen Versionen eines angegebenen Pakets oder Dateien in einer bestimmten Version eines Pakets auflisten.

Für alle folgenden Befehle können Sie eine maximale Anzahl von zurückzugebenden Dateien festlegen, indem Sie dem Befehl das Flag --limit hinzufügen.

So listen Sie alle Dateien im Standardprojekt, im Standard-Repository und am Standard-Speicherort auf, wenn die Standardwerte konfiguriert sind:

gcloud artifacts files list

Führen Sie den folgenden Befehl aus, um Dateien in einem angegebenen Projekt, Repository und Speicherort aufzulisten:

gcloud artifacts files list \
    --project=PROJECT \
    --repository=REPOSITORY \
    --location=LOCATION

So listen Sie Dateien für alle Versionen eines bestimmten Pakets auf:

gcloud artifacts files list \
    --project=PROJECT \
    --repository=REPOSITORY \
    --location=LOCATION \
    --package=PACKAGE

So listen Sie Dateien für eine bestimmte Paketversion auf:

gcloud artifacts files list \
    --project=PROJECT \
    --repository=REPOSITORY \
    --location=LOCATION \
    --package=PACKAGE \
    --version=VERSION

Ersetzen Sie die folgenden Werte:

  • LOCATION: der regionale oder multiregionale Speicherort für das Repository.
  • PROJECT: Ihre Google Cloud Projekt-ID. Wenn die Projekt-ID einen Doppelpunkt (:) enthält, finden Sie weitere Informationen unter Auf Domains beschränkte Projekte.
  • REPOSITORY: der Name des Repositorys, in dem das Image gespeichert ist.
  • PACKAGE: der Name des Pakets.
  • VERSION: die Version des Pakets.

Beispiele

Sehen Sie sich die folgenden Paketinformationen an:

  • Projekt: my-project
  • Repository: my-repo
  • Speicherort des Repositorys: us-west1
  • Paket: my-app

Mit dem folgenden Befehl werden alle Dateien im Repository my-repo am Speicherort us-west1 im Standardprojekt aufgelistet:

gcloud artifacts files list \
    --location=us-west1 \
    --repository=my-repo
Mit dem folgenden Befehl werden die Dateien in Version 1.0 des Pakets aufgelistet.

gcloud artifacts files list \
    --project=my-project \
    --location=us-west1 \
    --repository=my-repo \
    --package=my-app \
    --version=1.0

Pakete installieren

Repository-Modi:Standard, Remote, virtuell

Verwenden Sie den Befehl pip, um Pakete zu installieren.

Führen Sie den folgenden Befehl aus, um die neueste stabile Version eines Pakets zu installieren:

pip install PACKAGE

Bei Standard-Repositories laden Sie ein Paket direkt aus dem Repository herunter.

Bei einem Remote-Repository laden Sie eine im Cache gespeicherte Kopie des Pakets und seiner Abhängigkeiten herunter. Wenn keine Kopie im Cache vorhanden ist, lädt das Remote-Repository das Paket von der Upstream-Quelle herunter und speichert es im Cache, bevor es an Sie gesendet wird. Sie können prüfen, ob das Remote-Repository die Pakete aus der Upstream-Quelle abgerufen hat, indem Sie die Liste der Pakete im Repository aufrufen.

Bei einem virtuellen Repository durchsucht Artifact Registry Upstream-Repositories nach dem angeforderten Paket.

  • Upstream-Remote-Repositories laden das angeforderte Paket herunter und speichern es im Cache, wenn keine im Cache gespeicherte Kopie vorhanden ist. Virtuelle Repositories stellen nur angeforderte Pakete bereit, sie speichern sie nicht.
  • Wenn Sie eine Version anfordern, die in mehreren Upstream-Repositories verfügbar ist, wählt Artifact Registry ein Upstream-Repository basierend auf den für das virtuelle Repository konfigurierten Prioritätseinstellungen aus.

Angenommen, Sie haben ein virtuelles Repository mit den folgenden Prioritätseinstellungen für Upstream-Repositories:

  • main-repo: Priorität auf 100 festgelegt
  • secondary-repo1: Die Priorität ist auf 80 festgelegt.
  • secondary-repo2: Die Priorität ist auf 80 festgelegt.
  • test-repo: Die Priorität ist auf 20 festgelegt.

main-repo hat den höchsten Prioritätswert, daher wird immer zuerst in diesem virtuellen Repository gesucht.

Sowohl für secondary-repo1 als auch für secondary-repo2 ist die Priorität auf 80 festgelegt. Wenn ein angefordertes Paket nicht in main-repo verfügbar ist, durchsucht Artifact Registry als Nächstes diese Repositories. Da beide denselben Prioritätswert haben, kann Artifact Registry ein Paket aus einem der beiden Repositorys bereitstellen, wenn die Version in beiden verfügbar ist.

test-repo hat den niedrigsten Prioritätswert und es wird ein gespeichertes Artefakt bereitgestellt, wenn es in keinem der anderen Upstream-Repositories vorhanden ist.

Weitere Informationen

Standardmäßig installiert pip stabile Versionen eines Pakets und ignoriert Vorabversionen. In PEP 440 wird die Spezifikation für Python-Versionskennungen definiert, die von pip zum Parsen von Versionsnummern verwendet wird, einschließlich Vorabversionen.

Wenn Sie Vorabversionen in die Suche von pip nach einem zu installierenden Paket einbeziehen möchten, fügen Sie Ihrem Befehl das Flag --pre hinzu.

pip install --pre PACKAGE

Wenn Sie eine erforderliche Version oder einen erforderlichen Versionsbereich angeben möchten, fügen Sie einen Anforderungsspezifizierer ein. Sie können die Versionsanforderung direkt in Ihren Befehl einfügen oder eine Anforderungsdatei verwenden.

Mit diesem Befehl wird beispielsweise angegeben, dass die Mindestversion von my-package die Entwicklungsversion 1.0.dev0 ist.

pip install --pre my-package>=1.0.dev0

Stable-Releases gelten als neuer als Pre-Releases. Wenn sich also Version 1.0 im Repository befindet, wählt pip Version 1.0 anstelle einer Pre-Release-Version aus.

Wenn Sie kein Repository angeben, wird durch Ihre pip-Konfiguration in pip.conf festgelegt, wie pip nach dem Paket sucht.

  • Wenn Sie das Artifact Registry-Repository mit der Einstellung index-url konfiguriert haben und keine anderen Paketindexe konfiguriert sind, sucht pip nur in Ihrem Artifact Registry-Repository nach dem Paket.
  • Wenn Sie ein virtuelles Repository verwenden, wählt Artifact Registry ein Paket anhand der in der Upstream-Richtlinie konfigurierten Prioritäten aus, wenn mehrere Upstream-Repositories die angeforderte Paketversion enthalten. Wenn zwei Repositorys mit dem Paket dieselbe Priorität haben, wird es von Artifact Registry aus einem der beiden Repositorys bereitgestellt.
  • Wenn Sie pip mit der Einstellung extra-index-url konfiguriert haben oder mehrere Paketindexe konfiguriert sind, sucht pip auf pypi.org und allen anderen konfigurierten Paketindexen und wählt die neueste Version des Pakets aus.

Sie können die Einstellungen für index-url oder extra-index-url in Ihrer Anforderungsdatei überschreiben. Sie können auch Flags für diese Einstellungen in Ihrem pip-Befehl verwenden. Mit diesem Befehl wird beispielsweise index-url mit einem Artifact Registry-Repository überschrieben.

pip install --index-url https://us-east1-python.pkg.dev/my-project/python-repo/simple/ my-package

Weitere Informationen zum Installieren von Paketen finden Sie in der Dokumentation zu Python-Paketen.

Pakete und Versionen löschen

Repository-Modi:Standard, Remote

Sie können ein Paket und alle seine Versionen oder eine bestimmte Version löschen.

  • Das Löschen eines Pakets kann nicht rückgängig gemacht werden.
  • Bei Remote-Repositories wird nur die im Cache gespeicherte Kopie des Pakets gelöscht. Die Upstream-Quelle ist nicht betroffen. Wenn Sie ein im Cache gespeichertes Paket löschen, wird es von Artifact Registry heruntergeladen und wieder im Cache gespeichert, wenn das Repository das nächste Mal eine Anfrage für dieselbe Paketversion erhält.

Before you delete a package or package version, verify that any you have communicated or addressed any important dependencies on it.

To delete a package:

Console

  1. Open the Repositories page in the Google Cloud console.

    Open the Repositories page

  2. In the repository list, click the appropriate repository.

    The Packages page lists the packages in the repository.

  3. Select the package that you want to delete.

  4. Click DELETE.

  5. In the confirmation dialog box, click DELETE.

gcloud

Run the following command:

gcloud artifacts packages delete PACKAGE \
    [--repository=REPOSITORY] [--location=LOCATION] [--async]

Replace the following:

  • PACKAGE is the name of the package in the repository.
  • REPOSITORY is the name of the repository. If you configured a default repository, then you can omit this flag to use the default.
  • LOCATION is the regional or multi-regional location of the repository. Use this flag to view repositories in a specific location. If you configured a default location, then you can omit this flag to use the default.

The --async flag causes the command to return immediately, without waiting for the operation in progress to complete.

To delete versions of a package:

Console

  1. Open the Repositories page in the Google Cloud console.

    Open the Repositories page

  2. In the repository list, click the appropriate repository.

    The Packages page lists the packages in the repository.

  3. Click a package to view versions of that package.

  4. Select versions that you want to delete.

  5. Click DELETE.

  6. In the confirmation dialog box, click DELETE.

gcloud

Run the following command:

gcloud artifacts versions delete VERSION \
    --package=PACKAGE \
    [--repository=REPOSITORY] [--location=LOCATION] \
    [--async]

Replace the following:

  • VERSION is the name of the version to delete.
  • PACKAGE is the name of the package in the repository.
  • REPOSITORY is the name of the repository. If you configured a default repository, then you can omit this flag to use the default.
  • LOCATION is the regional or multi-regional location of the repository. Use this flag to view repositories in a specific location. If you configured a default location, then you can omit this flag to use the default.

The --async flag causes the command to return immediately, without waiting for the operation in progress to complete.

Nächste Schritte