Auf dieser Seite wird beschrieben, wie Sie Python-Pakete und -Paketversionen hinzufügen, aufrufen und löschen.
Hinweise
Installieren und initialize Sie die Google Cloud CLI.
Zum Ausführen von Befehlen für Python-Repositories ist die Google Cloud CLI ab Version 354.0.0 erforderlich. Sie können die Version mit dem folgenden Befehl prüfen:
gcloud version
Wenn das Ziel-Repository nicht vorhanden ist, erstellen Sie ein neues Python-Paket-Repository.
Überprüfen Sie, ob Python 3 installiert ist. Eine Installationsanleitung finden Sie in der Google Cloud-Anleitung zum Einrichten von Python.
(Optional) Konfigurieren Sie die Standardeinstellungen für gcloud-Befehle.
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 zu gewähren, damit Sie die Berechtigungen erhalten, die Sie zum Verwalten von Paketen benötigen:
-
Pakete oder Dateien in Paketen ansehen:
Artifact Registry-Leser (
roles/artifactregistry.reader
) -
Pakete herunterladen oder installieren:
Artifact Registry-Leser (
roles/artifactregistry.reader
) -
Fügen Sie einem Repository Pakete hinzu:
Artifact Registry-Autor (
roles/artifactregistry.writer
) -
Pakete löschen:
Artifact Registry-Repository-Administrator (
roles/artifactregistry.repoAdmin
)
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.
Möglicherweise können Sie 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 Verteilungsdateien in einem dist
-Unterverzeichnis in Ihrem Projekt gespeichert. Anschließend können Sie mit Twine Pakete in ein Standard-Repository hochladen.
Wir empfehlen die folgenden Best Practices für Ihre Pakete:
- Verwenden Sie eindeutige Namen für Ihre privaten Pakete, damit sie nicht mit den Paketnamen auf pypi.org übereinstimmen, insbesondere wenn Ihre pip-Konfiguration mehrere Paketindexe enthält.
- Verwenden Sie die Versionskennungsspezifikation in PEP 440 für die Versionsnummern Ihres Pakets. Standardmäßig installiert „pip“ nur stabile Releases. Dabei wird die Spezifikation der Versionskennung verwendet, um stabile Versionen von Vorabveröffentlichungen zu unterscheiden und alle Anforderungen für die zu installierende Version zu parsen.
So fügen Sie ein Paket hinzu:
Installieren Sie Twine.
pip install twine
Wechseln Sie in das Python-Projektverzeichnis.
Laden Sie die Distributionsdateien aus dem Unterverzeichnis des Projekts
dist
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
So rufen Sie Pakete und Paketversionen mit der Google Cloud Console oder gcloud
auf:
Console
Öffnen Sie in der Cloud Console die Seite Repositories.
Klicken Sie in der Liste der Repositories auf das entsprechende Repository.
Auf der Seite Pakete sind die Pakete des Repositorys aufgeführt.
Klicken Sie auf das Paket, um die Versionen des Pakets aufzurufen.
gcloud
Führen Sie den folgenden Befehl aus, um die Pakete in einem Repository aufzulisten:
gcloud artifacts packages list [--repository=REPOSITORY] [--location=LOCATION]
Dabei gilt:
- REPOSITORY ist der Name des Repositorys. Wenn Sie ein Standard-Repository konfiguriert haben, wird bei Weglassen dieses Flags dieses Standard-Repository verwendet.
- LOCATION ist ein-regionaler oder multiregionaler Standort. Verwenden Sie dieses Flag, um Repositories an einem bestimmten Speicherort aufzurufen. Wenn Sie einen default-Speicherort konfiguriert haben, können Sie dieses Flag weglassen, um den Standardwert zu verwenden.
Um die Versionen für ein Paket aufzurufen, führen Sie folgenden Befehl aus:
gcloud artifacts versions list --package=PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION]
Wo
- PACKAGE ist die ID des Pakets oder die vollqualifizierte Kennzeichnung für das Paket.
- REPOSITORY ist der Name des Repositorys. Wenn Sie ein Standard-Repository konfiguriert haben, wird bei Weglassen dieses Flags dieses Standard-Repository verwendet.
- LOCATION ist ein-regionaler oder multiregionaler Standort. Verwenden Sie dieses Flag, um Repositories an einem bestimmten Speicherort aufzurufen. Wenn Sie einen default-Speicherort konfiguriert haben, können Sie dieses Flag weglassen, um den Standardwert zu verwenden.
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 bestimmten Pakets oder Dateien in einer bestimmten Version eines Pakets auflisten.
Bei allen folgenden Befehlen können Sie eine maximale Anzahl von Dateien festlegen, die zurückgegeben werden sollen. Dazu fügen Sie dem Befehl das Flag --limit
hinzu.
So listen Sie alle Dateien im Standardprojekt, Repository und am Speicherort auf, wenn die Standardwerte konfiguriert sind:
gcloud artifacts files list
Führen Sie den folgenden Befehl aus, um Dateien in einem bestimmten 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 Standort des Repositorys.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
Beachten Sie die folgenden Paketinformationen:
- 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
des Standardprojekts aufgelistet:
gcloud artifacts files list \
--location=us-west1 \
--repository=my-repo
Mit dem folgenden Befehl werden Dateien der 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, Virtual
Pakete werden mit dem Befehl pip
installiert.
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 im Cache gespeicherte Kopie vorhanden ist, lädt das Remote-Repository das Paket aus der Upstream-Quelle herunter und speichert es vor der Bereitstellung für Sie im Cache. Sie können überprüfen, ob das Remote-Repository die Pakete aus der vorgelagerten 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 zwischengespeicherte Kopie vorhanden ist. Virtuelle Repositories stellen nur angeforderte Pakete bereit, speichern sie nicht.
- Wenn Sie eine Version anfordern, die in mehr als einem Upstream-Repository verfügbar ist, wählt Artifact Registry basierend auf den für das virtuelle Repository konfigurierten Prioritätseinstellungen ein Upstream-Repository aus.
Betrachten Sie beispielsweise ein virtuelles Repository mit den folgenden Prioritätseinstellungen für Upstream-Repositories:
main-repo
: Priorität auf100
festgelegtsecondary-repo1
: Priorität auf80
festgelegt.secondary-repo2
: Priorität auf80
festgelegt.test-repo
: Priorität auf20
festgelegt.
main-repo
hat den höchsten Prioritätswert, sodass das virtuelle Repository immer zuerst danach sucht.
Sowohl secondary-repo1
als auch secondary-repo2
haben die Priorität 80
. Wenn ein angefordertes Paket in main-repo
nicht verfügbar ist, durchsucht Artifact Registry diese Repositories als Nächstes. Da beide denselben Prioritätswert haben, kann Artifact Registry auswählen, ein Paket aus einem der Repositorys bereitzustellen, wenn die Version in beiden Repositorys verfügbar ist.
test-repo
hat den niedrigsten Prioritätswert und stellt ein gespeichertes Artefakt bereit, wenn es in keinem der anderen vorgelagerten Repositories vorhanden ist.
Weitere Informationen
Standardmäßig installiert pip stabile Versionen eines Pakets und ignoriert vorab veröffentlichte Versionen. In PEP 440 wird die Spezifikation der Python-Versionskennung definiert, anhand derer pip-Nutzer Versionsnummern parsen können, einschließlich Vorabveröffentlichungen.
Wenn Sie Vorabversionen einschließen möchten, wenn pip nach einem zu installierenden Paket sucht, 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 Anforderungsbezeichner hinzu. Sie können die Versionsanforderung direkt in den Befehl aufnehmen oder eine Anforderungsdatei verwenden.
Der folgende Befehl gibt beispielsweise an, dass die Mindestversion von my-package
die Entwicklungsversion 1.0.dev0
ist.
pip install --pre my-package>=1.0.dev0
Stabile Releases gelten als neuer als Vorabveröffentlichungen. Wenn sich also die Version 1.0
im Repository befindet, wird von pip die Version 1.0
einer Vorabveröffentlichung vorgezogen.
Wenn Sie kein Repository angeben, bestimmt Ihre pip-Konfiguration in pip.conf
, 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, verwendet Artifact Registry die in der Upstream-Richtlinie konfigurierten Prioritäten, um ein Paket auszuwählen, wenn mehrere Upstream-Repositories die angeforderte Paketversion haben. Wenn zwei Repositories mit dem Paket dieselbe Priorität haben, stellt Artifact Registry es von einem der Repositories aus bereit.
- Wenn Sie pip mit der Einstellung
extra-index-url
konfiguriert oder mehrere Paketindexe konfiguriert haben, durchsucht pip pypi.org und alle anderen konfigurierten Paketindexe und wählt die neueste Version des Pakets aus.
Sie können die Einstellungen index-url
oder extra-index-url
in der Anforderungsdatei überschreiben. Sie können für diese Einstellungen auch Flags in Ihrem pip-Befehl verwenden. Dieser Befehl überschreibt beispielsweise index-url
mit einem Artifact Registry-Repository.
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 zur Python-Paketerstellung.
Pakete und Versionen löschen
Repository-Modi: Standard, Remote
Sie können ein Paket und alle zugehörigen Versionen oder eine bestimmte Version löschen.
- Wenn Sie ein Paket löschen, kann dieser Vorgang nicht mehr rückgängig gemacht werden.
- Bei Remote-Repositories wird nur die im Cache gespeicherte Kopie des Pakets gelöscht. Die vorgelagerte Quelle ist davon nicht betroffen. Wenn Sie ein im Cache gespeichertes Paket löschen, wird es von Artifact Registry noch einmal heruntergeladen und im Cache gespeichert, sobald das Repository das nächste Mal eine Anfrage für dieselbe Paketversion erhält.
Bevor Sie ein Paket oder eine Paketversion löschen, prüfen Sie, ob Sie alle wichtigen Abhängigkeiten davon kommuniziert oder behoben haben.
So löschen Sie ein Paket:
Console
Öffnen Sie in der Cloud Console die Seite Repositories.
Klicken Sie in der Liste der Repositories auf das entsprechende Repository.
Auf der Seite Pakete sind die Pakete des Repositorys aufgeführt.
Wählen Sie das Paket aus, das Sie löschen möchten.
Klicken Sie auf Löschen.
Klicken Sie im Bestätigungsdialogfeld auf Löschen.
gcloud
Führen Sie dazu diesen Befehl aus:
gcloud artifacts packages delete PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION] [--async]
Dabei gilt:
- PACKAGE ist der Name des Pakets im Repository.
- REPOSITORY ist der Name des Repositorys. Wenn Sie ein Standard-Repository konfiguriert haben, wird bei Weglassen dieses Flags dieses Standard-Repository verwendet.
- LOCATION ist ein-regionaler oder multiregionaler Standort. Verwenden Sie dieses Flag, um Repositories an einem bestimmten Speicherort aufzurufen. Wenn Sie einen default-Speicherort konfiguriert haben, können Sie dieses Flag weglassen, um den Standardwert zu verwenden.
--async
wird sofort zurückgegeben, ohne auf den Abschluss des Vorgangs zu warten.
So löschen Sie Versionen eines Pakets:
Console
Öffnen Sie in der Cloud Console die Seite Repositories.
Klicken Sie in der Liste der Repositories auf das entsprechende Repository.
Auf der Seite Pakete sind die Pakete des Repositorys aufgeführt.
Klicken Sie auf das Paket, um die Versionen des Pakets aufzurufen.
Wählen Sie die Versionen aus, die Sie löschen möchten.
Klicken Sie auf Löschen.
Klicken Sie im Bestätigungsdialogfeld auf Löschen.
gcloud
Führen Sie dazu diesen Befehl aus:
gcloud artifacts versions delete VERSION \
--package=PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION] \
[--async]
Dabei gilt:
- PACKAGE ist der Name des Pakets im Repository.
- REPOSITORY ist der Name des Repositorys. Wenn Sie ein Standard-Repository konfiguriert haben, wird bei Weglassen dieses Flags dieses Standard-Repository verwendet.
- LOCATION ist ein-regionaler oder multiregionaler Standort. Verwenden Sie dieses Flag, um Repositories an einem bestimmten Speicherort aufzurufen. Wenn Sie einen default-Speicherort konfiguriert haben, können Sie dieses Flag weglassen, um den Standardwert zu verwenden.
--async
wird sofort zurückgegeben, ohne auf den Abschluss des Vorgangs zu warten.
Nächste Schritte
- Informationen zum Verwalten von Java-Paketen
- Weitere Informationen zum Verwalten von Node.js-Paketen
- Informationen zum Verwalten von Container-Images
- Einzelne Dateien in einem Paket herunterladen