Cette page décrit comment ajouter, afficher et supprimer des packages Python et des versions de packages.
Avant de commencer
Installez et initialisez la Google Cloud CLI.
La version 354.0.0 ou ultérieure de Google Cloud CLI est requise pour exécuter des commandes pour les dépôts Python. Vous pouvez vérifier la version à l'aide de la commande suivante :
gcloud version
Si le dépôt cible n'existe pas, créez un dépôt de packages Python.
Vérifiez que Python 3 est installé. Pour obtenir des instructions d'installation, consultez leGoogle Cloud tutoriel de configuration de Python.
(Facultatif) Configurez des valeurs par défaut pour les commandes gcloud.
Si vous utilisez l'authentification par trousseau avec les identifiants gcloud, connectez-vous à Google Cloud CLI avec votre compte utilisateur ou votre compte de service.
Rôles requis
Pour obtenir les autorisations nécessaires pour gérer les packages, demandez à votre administrateur de vous accorder les rôles IAM suivants sur le dépôt :
-
Afficher les packages ou les fichiers dans les packages :
Lecteur Artifact Registry (
roles/artifactregistry.reader
) -
Télécharger ou installer des packages :
Lecteur Artifact Registry (
roles/artifactregistry.reader
) -
Ajoutez des packages à un dépôt :
Rédacteur Artifact Registry (
roles/artifactregistry.writer
) -
Supprimer des packages :
Administrateur de dépôts Artifact Registry (
roles/artifactregistry.repoAdmin
)
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.
Ajouter des packages
Modes de dépôt : standard
Lorsque vous compilez un projet Python, les fichiers de distribution sont enregistrés dans un sous-répertoire dist
de votre projet. Vous pouvez ensuite utiliser Twine pour importer des packages dans un dépôt standard.
Nous vous recommandons de suivre les bonnes pratiques suivantes pour vos packages :
- Utilisez des noms uniques pour vos packages privés afin qu'ils ne correspondent pas aux noms de package sur pypi.org, en particulier si votre configuration pip inclut plusieurs index de packages.
- Utilisez la spécification de l'identifiant de version dans PEP 440 pour les numéros de version de votre package. Par défaut, pip n'installe que les versions stables. Il utilise la spécification de l'identifiant de version pour distinguer les versions stables des versions préliminaires et pour analyser les exigences concernant la version à installer.
Pour ajouter un package :
Installez Twine.
pip install twine
Accédez au répertoire de votre projet Python.
Importez les fichiers de distribution dans le dépôt à partir du sous-répertoire
dist
du projet. Exécutez la commande suivante :twine upload dist/*
Vous pouvez spécifier un dépôt particulier avec l'option
--repository-url
.twine upload --repository-url https://LOCATION-python.pkg.dev/PROJECT/REPOSITORY/ dist/*
Afficher des packages et des versions
Modes de dépôt : standard, distant
To view packages and package versions using the Google Cloud console
or gcloud
:
Console
Open the Repositories page in the Google Cloud console.
In the repository list, click the appropriate repository.
The Packages page lists the packages in the repository.
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.
Pour les dépôts distants, la liste renvoyée doit inclure toutes les dépendances directes et transitives.
Lister les fichiers
Modes de dépôt : standard, distant
Vous pouvez lister les fichiers d'un dépôt, les fichiers de toutes les versions d'un package spécifié ou les fichiers d'une version spécifique d'un package.
Pour toutes les commandes suivantes, vous pouvez définir un nombre maximal de fichiers à renvoyer en ajoutant l'option --limit
à la commande.
Pour répertorier tous les fichiers dans le projet, le dépôt et l'emplacement par défaut lorsque les valeurs par défaut sont configurées :
gcloud artifacts files list
Pour lister les fichiers d'un projet, d'un dépôt et d'un emplacement spécifiques, exécutez la commande suivante :
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION
Pour lister les fichiers de toutes les versions d'un package spécifique :
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION \
--package=PACKAGE
Pour lister les fichiers d'une version de package spécifique :
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION \
--package=PACKAGE \
--version=VERSION
Remplacez les valeurs suivantes :
LOCATION
: emplacement régional ou multirégional du dépôt.PROJECT
: ID de votre projet Google Cloud . Si l'ID du projet contient le signe deux-points (:
), consultez la section Projets à l'échelle du domaine.REPOSITORY
: nom du dépôt où l'image est stockée.PACKAGE
: nom du package.VERSION
: version du package.
Exemples
Considérez les informations suivantes sur le package :
- Projet :
my-project
- Dépôt :
my-repo
- Emplacement du dépôt :
us-west1
- Package :
my-app
La commande suivante liste tous les fichiers du dépôt my-repo
à l'emplacement us-west1
dans le projet par défaut :
gcloud artifacts files list \
--location=us-west1 \
--repository=my-repo
1.0
du package.
gcloud artifacts files list \
--project=my-project \
--location=us-west1 \
--repository=my-repo \
--package=my-app \
--version=1.0
Installer des packages
Modes de dépôt : standard, distant, virtuel
Utilisez la commande pip
pour installer des packages.
Pour installer la dernière version stable d'un package, exécutez la commande suivante :
pip install PACKAGE
Pour les dépôts standards, vous téléchargez un package directement à partir du dépôt.
Pour un dépôt distant, vous téléchargez une copie mise en cache du package et de ses dépendances. Si aucune copie mise en cache n'existe, le dépôt distant télécharge le package à partir de la source en amont et le met en cache avant de vous le fournir. Vous pouvez vérifier que le dépôt distant a récupéré les packages à partir de la source en amont en affichant la liste des packages dans le dépôt.
Pour un dépôt virtuel, Artifact Registry recherche le package demandé dans les dépôts en amont.
- Les dépôts distants en amont téléchargeront et mettront en cache le package demandé si aucune copie mise en cache n'existe. Les dépôts virtuels ne font que diffuser les packages demandés, ils ne les stockent pas.
- Si vous demandez une version disponible dans plusieurs dépôts en amont, Artifact Registry choisit un dépôt en amont à utiliser en fonction des paramètres de priorité configurés pour le dépôt virtuel.
Prenons l'exemple d'un dépôt virtuel avec les paramètres de priorité suivants pour les dépôts en amont :
main-repo
: priorité définie sur100
secondary-repo1
: priorité définie sur80
.secondary-repo2
: priorité définie sur80
.test-repo
: priorité définie sur20
.
main-repo
a la valeur de priorité la plus élevée. Le dépôt virtuel le recherche donc toujours en premier.
Les priorités de secondary-repo1
et secondary-repo2
sont définies sur 80
. Si un package demandé n'est pas disponible dans main-repo
, Artifact Registry recherche ensuite dans ces dépôts. Comme ils ont tous les deux la même valeur de priorité, Artifact Registry peut choisir de diffuser un package à partir de l'un ou l'autre des dépôts si la version est disponible dans les deux.
test-repo
a la valeur de priorité la plus basse et diffusera un artefact stocké si aucun des autres dépôts en amont ne le possède.
Informations supplémentaires
Par défaut, pip installe les versions stables d'un package et ignore les versions préliminaires. La PEP 440 définit la spécification de l'identifiant de version Python que pip utilise pour analyser les numéros de version, y compris les versions préliminaires.
Pour inclure les versions préliminaires lorsque pip recherche un package à installer, ajoutez l'indicateur --pre
à votre commande.
pip install --pre PACKAGE
Pour spécifier une version ou une plage de versions requise, incluez un spécificateur d'exigence. Vous pouvez inclure l'exigence de version directement dans votre commande ou utiliser un fichier d'exigences.
Par exemple, cette commande spécifie que la version minimale de my-package
est la version de développement 1.0.dev0
.
pip install --pre my-package>=1.0.dev0
Les versions stables sont considérées comme plus récentes que les préversions. Par conséquent, si la version 1.0
se trouve dans le dépôt, pip choisira la version 1.0
plutôt qu'une préversion.
Si vous ne spécifiez pas de dépôt, votre configuration pip dans pip.conf
détermine la façon dont pip recherche le package.
- Si vous avez configuré le dépôt Artifact Registry avec le paramètre
index-url
et qu'aucun autre index de package n'est configuré, pip ne recherche le package que dans votre dépôt Artifact Registry. - Si vous utilisez un dépôt virtuel, Artifact Registry utilise les priorités configurées dans la règle en amont pour choisir un package lorsque plusieurs dépôts en amont disposent de la version de package demandée. Si deux dépôts contenant le package ont la même priorité, Artifact Registry le diffuse à partir de l'un ou l'autre des dépôts.
- Si vous avez configuré pip avec le paramètre
extra-index-url
ou si vous avez configuré plusieurs index de packages, pip recherche pypi.org et tous les autres index de packages configurés, puis choisit la dernière version du package.
Vous pouvez remplacer les paramètres index-url
ou extra-index-url
dans votre fichier requirements. Vous pouvez également utiliser des indicateurs pour ces paramètres dans votre commande pip. Par exemple, cette commande remplace index-url
par un dépôt Artifact Registry.
pip install --index-url https://us-east1-python.pkg.dev/my-project/python-repo/simple/ my-package
Pour en savoir plus sur l'installation de packages, consultez la documentation sur le packaging Python.
Supprimer des packages et des versions
Modes de dépôt : standard, distant
Vous pouvez supprimer un package et toutes ses versions, ou supprimer une version spécifique.
- La suppression d'un package est irréversible.
- Pour les dépôts distants, seule la copie mise en cache du package est supprimée. La source en amont n'est pas affectée. Si vous supprimez un package mis en cache, Artifact Registry le téléchargera et le mettra à nouveau en cache la prochaine fois que le dépôt recevra une demande pour la même version du package.
Avant de supprimer un package ou une version de package, vérifiez que vous avez communiqué ou résolu toute dépendance importante associée.
Pour supprimer un package, procédez comme suit :
Console
Ouvrez la page Dépôts dans la console Google Cloud .
Dans la liste des dépôts, cliquez sur le dépôt approprié.
La page Packages répertorie les packages du dépôt.
Sélectionnez le package que vous souhaitez supprimer.
Cliquez sur SUPPRIMER.
Dans la boîte de dialogue de confirmation, cliquez sur SUPPRIMER.
gcloud
Exécutez la commande ci-dessous.
gcloud artifacts packages delete PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION] [--async]
Remplacez les éléments suivants :
PACKAGE
est le nom du package dans le dépôt.REPOSITORY
est le nom du dépôt. Si vous avez configuré un dépôt par défaut, vous pouvez omettre cet indicateur pour utiliser le dépôt par défaut.-
LOCATION
est l'emplacement régional ou multirégional du dépôt. Utilisez cette option pour afficher les dépôts dans un emplacement spécifique. Si vous avez configuré un emplacement par défaut, vous pouvez omettre cette option pour utiliser la valeur par défaut.
L'option --async
permet à la commande de renvoyer immédiatement une réponse, sans attendre la fin de l'opération en cours.
Pour supprimer des versions d'un package, procédez comme suit :
Console
Ouvrez la page Dépôts dans la console Google Cloud .
Dans la liste des dépôts, cliquez sur le dépôt approprié.
La page Packages répertorie les packages du dépôt.
Cliquez sur un package pour afficher ses versions.
Sélectionnez les versions que vous souhaitez supprimer.
Cliquez sur SUPPRIMER.
Dans la boîte de dialogue de confirmation, cliquez sur SUPPRIMER.
gcloud
Exécutez la commande ci-dessous.
gcloud artifacts versions delete VERSION \
--package=PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION] \
[--async]
Remplacez les éléments suivants :
VERSION
correspond au nom de la version à supprimer.PACKAGE
est le nom du package dans le dépôt.REPOSITORY
est le nom du dépôt. Si vous avez configuré un dépôt par défaut, vous pouvez omettre cet indicateur pour utiliser le dépôt par défaut.-
LOCATION
est l'emplacement régional ou multirégional du dépôt. Utilisez cette option pour afficher les dépôts dans un emplacement spécifique. Si vous avez configuré un emplacement par défaut, vous pouvez omettre cette option pour utiliser la valeur par défaut.
L'option --async
permet à la commande de renvoyer immédiatement une réponse, sans attendre la fin de l'opération en cours.
Étapes suivantes
- En savoir plus sur la gestion des packages Java
- En savoir plus sur la gestion des packages Node.js
- En savoir plus sur la gestion des images de conteneurs
- Télécharger des fichiers individuels dans un package