En esta página, se describe cómo agregar, ver y borrar versiones de paquetes y paquetes de Python.
Antes de comenzar
Instala y inicializa Google Cloud CLI.
Se necesita Google Cloud CLI versión 354.0.0 o posterior para ejecutar comandos para en los repositorios de Python. Puedes verificar la versión con el siguiente comando:
gcloud version
Si el repositorio de destino no existe, Crea un nuevo repositorio de paquetes de Python.
Verifica que Python 3 esté instalado. Para obtener instrucciones de instalación, consulta el instructivo de Google Cloud para configurar Python.
(Opcional) Configura valores predeterminados para los comandos de gcloud.
Si usas la autenticación mediante llavero de claves con de gcloud, accede a Google Cloud CLI con tu cuenta de usuario o cuenta de servicio.
Roles obligatorios
Para obtener los permisos que necesitas para administrar paquetes, pídele a tu administrador que te otorgue los siguientes roles de IAM en el repositorio:
-
Visualiza paquetes o archivos en paquetes:
Lector de Artifact Registry (
roles/artifactregistry.reader
) -
Descarga o instala paquetes:
Lector de Artifact Registry (
roles/artifactregistry.reader
) -
Agrega paquetes a un repositorio:
Escritor de Artifact Registry (
roles/artifactregistry.writer
) -
Borrar paquetes:
Administrador del repositorio de Artifact Registry (
roles/artifactregistry.repoAdmin
)
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.
Agrega paquetes
Modos de repositorio: estándar
Cuando compilas un proyecto de Python, los archivos de distribución se guardan en un archivo dist
.
subdirectorio en tu proyecto. Luego, puedes usar Twine para subir paquetes a un repositorio estándar.
Recomendamos las siguientes prácticas recomendadas para tus paquetes:
- Usa nombres únicos para tus paquetes privados de modo que no coincidan con el paquete. en pypi.org, especialmente si las La configuración de pip incluye varios índices de paquetes.
- Usa la especificación del identificador de versión en PEP 440 para los números de versión del paquete. De forma predeterminada, pip solo instala versiones estables. Usa la especificación de identificador de versión para distinguir las versiones estables de versiones previas al lanzamiento y analizar los requisitos de la versión que se instalará.
Para agregar un paquete, haz lo siguiente:
Instala Twine.
pip install twine
Cambia al directorio del proyecto de Python.
Sube los archivos de distribución al repositorio desde el subdirectorio
dist
del proyecto. Ejecuta el siguiente comando:twine upload dist/*
Puedes especificar un repositorio en particular con la marca
--repository-url
.twine upload --repository-url https://LOCATION-python.pkg.dev/PROJECT/REPOSITORY/ dist/*
Visualiza paquetes y versiones
Modos de repositorio: estándar, remoto
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]
Where
- REPOSITORY is the name of the repository. If you configured a default repository, you can omit this flag to use the default.
- LOCATION is a regional or multi-regional location. Use this flag to view repositories in a specific location. If you configured a default location, 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]
Where
- 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, you can omit this flag to use the default.
- LOCATION is a regional or multi-regional location. Use this flag to view repositories in a specific location. If you configured a default location, you can omit this flag to use the default.
Para los repositorios remotos, la lista que se devuelve debe incluir todos los las dependencias transitivas.
Cómo enumerar archivos
Modos de repositorio: Estándar, remoto
Puedes enumerar archivos de un repositorio, archivos de todas las versiones de un paquete o archivos en una versión específica de un paquete.
Para todos los siguientes comandos, puedes establecer una cantidad máxima de archivos que se mostrarán si agregas la marca --limit
al comando.
Para enumerar todos los archivos en el proyecto, el repositorio y ubicación cuando los valores predeterminados están configurados:
gcloud artifacts files list
Para mostrar una lista de los archivos en un proyecto, un repositorio y una ubicación especificados, ejecuta el comando:
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION
Para obtener una lista de los archivos de todas las versiones de un paquete específico, haz lo siguiente:
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION \
--package=PACKAGE
Para enumerar los archivos de una versión específica de un paquete, haz lo siguiente:
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION \
--package=PACKAGE \
--version=VERSION
Reemplaza los siguientes valores:
LOCATION
: el regional o multirregional location del repositorio.PROJECT
: El ID del proyecto de Google Cloud. Si el ID de tu proyecto contiene dos puntos (`:`), consulta Proyectos con alcance de dominio.REPOSITORY
: Es el nombre del repositorio en el que se encuentra la imagen. cuando se almacena.PACKAGE
: Es el nombre del paquete.VERSION
: Es la versión del paquete.
Ejemplos
Ten en cuenta la siguiente información del paquete:
- Proyecto:
my-project
- Repositorio:
my-repo
- Ubicación del repositorio:
us-west1
- Paquete:
my-app
Con el siguiente comando, se enumeran todos los archivos del repositorio my-repo
en la
posición us-west1
dentro del proyecto predeterminado:
gcloud artifacts files list \
--location=us-west1 \
--repository=my-repo
1.0
del paquete.
gcloud artifacts files list \
--project=my-project \
--location=us-west1 \
--repository=my-repo \
--package=my-app \
--version=1.0
Instala paquetes
Modos de repositorio: estándar, remoto y virtual
Usa el comando pip
para instalar paquetes.
Para instalar la versión estable más reciente de un paquete, ejecuta el siguiente comando:
pip install PACKAGE
En el caso de los repositorios estándar, puedes descargar un paquete directamente desde el repositorio.
En el caso de un repositorio remoto, debes descargar una copia almacenada en caché del paquete y su las dependencias. Si no existe una copia almacenada en caché, el repositorio remoto descarga el paquete de la fuente upstream y lo almacena en caché antes de entregarlo. Para verificar que el repositorio remoto recuperó los paquetes de la fuente upstream, consulta la lista de paquetes en el repositorio.
Para un repositorio virtual, Artifact Registry busca repositorios ascendentes para el paquete solicitado.
- Los repositorios remotos upstream descargarán y almacenarán en caché el paquete solicitado si no existe una copia almacenada en caché. Los repositorios virtuales solo entregan los paquetes solicitados, no los almacenan.
- Si solicitas una versión que está disponible en más de un flujo ascendente repositorio, Artifact Registry elige un repositorio upstream para usar según la configuración de prioridad establecida para el repositorio virtual.
Por ejemplo, considera un repositorio virtual con la siguiente configuración de prioridad para los repositorios upstream:
main-repo
: Se estableció la prioridad en100
secondary-repo1
: Prioridad establecida en80
.secondary-repo2
: Prioridad establecida en80
.test-repo
: Se estableció la prioridad en20
.
main-repo
tiene el valor de prioridad más alto, por lo que el repositorio virtual siempre lo busca primero.
Tanto secondary-repo1
como secondary-repo2
tienen la prioridad establecida en 80
. Si una
El paquete solicitado no está disponible en main-repo
, Artifact Registry
buscará estos repositorios a continuación. Dado que ambos tienen el mismo valor de prioridad, Artifact Registry puede elegir entregar un paquete desde cualquiera de los repositorios si la versión está disponible en ambos.
test-repo
tiene el valor de prioridad más bajo y entregará un artefacto almacenado si
ninguno de los otros repositorios ascendentes
la tiene.
Información adicional
De forma predeterminada, pip instala versiones estables de un paquete e ignora las versiones previas al lanzamiento. PEP 440 define la versión de Python específica que permite pip a los usuarios para analizar los números de versión, como versiones previas al lanzamiento.
Para incluir versiones previas al lanzamiento cuando pip busque un paquete para instalar, agrega la marca --pre
a tu comando.
pip install --pre PACKAGE
Para especificar una versión o un rango de versiones requeridas, incluye un especificador de requisitos. Puedes incluir lo siguiente: el requisito de versión directamente en tu comando o usa un archivo de requisitos.
Por ejemplo, este comando especifica que la versión mínima de my-package
es
versión de desarrollo 1.0.dev0
.
pip install --pre my-package>=1.0.dev0
Las versiones estables se consideran más recientes que las previas, por lo que si la versión 1.0
se encuentra en el repositorio, pip elegirá la versión 1.0
en lugar de una versión previa al lanzamiento.
Si no especificas un repositorio, la configuración de pip en pip.conf
determina cómo pip busca el paquete.
- Si configuraste el repositorio de Artifact Registry con la configuración de
index-url
y no se configuraron otros índices de paquetes, pip solo buscará el paquete en tu repositorio de Artifact Registry. - Si usas un repositorio virtual, Artifact Registry usa el prioridades configuradas en la política ascendente para elegir un paquete cuando varios repositorios ascendentes tienen la versión del paquete solicitada. Si son dos los repositorios con el paquete tienen la misma prioridad, Artifact Registry la entrega desde cualquiera de los repositorios.
- Si configuraste pip con el parámetro
extra-index-url
o si configuraste varios índices de paquetes, pip buscará pypi.org y cualquier otro índice de paquetes configurado, y elegirá la versión más reciente del paquete.
Puedes anular la configuración de index-url
o extra-index-url
en el archivo de requisitos. Puedes
usa marcas para estas configuraciones en tu comando de pip. Por ejemplo, este comando anula index-url
con un repositorio de Artifact Registry.
pip install --index-url https://us-east1-python.pkg.dev/my-project/python-repo/simple/ my-package
Para obtener más información sobre la instalación de paquetes, consulta la Documentación de empaquetado de Python.
Borra paquetes y versiones
Modos de repositorio: Estándar, remoto
Puedes borrar un paquete y todas sus versiones, o bien borrar una versión específica.
- Una vez que borres un paquete, no podrás deshacer la acción.
- En el caso de los repositorios remotos, solo se borra la copia almacenada en caché del paquete. La fuente upstream no se ve afectada. Si borras un paquete almacenado en caché, Artifact Registry lo volverá a descargar y almacenar en caché la próxima vez que el repositorio reciba una solicitud para la misma versión del paquete.
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
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.
Select the package that you want to delete.
Click DELETE.
In the confirmation dialog box, click DELETE.
gcloud
Run the following command:
gcloud artifacts packages delete PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION] [--async]
Where
- PACKAGE is the name of the package in the repository.
- REPOSITORY is the name of the repository. If you configured a default repository, you can omit this flag to use the default.
- LOCATION is a regional or multi-regional location. Use this flag to view repositories in a specific location. If you configured a default location, you can omit this flag to use the default.
--async
Return immediately, without waiting for the operation in progress to complete.
To delete versions of a package:
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 that package.
Select versions that you want to delete.
Click DELETE.
In the confirmation dialog box, click DELETE.
gcloud
Run the following command:
gcloud artifacts versions delete VERSION \
--package=PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION] \
[--async]
Where
- PACKAGE is the name of the package in the repository.
- REPOSITORY is the name of the repository. If you configured a default repository, you can omit this flag to use the default.
- LOCATION is a regional or multi-regional location. Use this flag to view repositories in a specific location. If you configured a default location, you can omit this flag to use the default.
--async
returns immediately, without waiting for the operation in progress to complete.
¿Qué sigue?
- Obtén más información sobre cómo administrar paquetes de Java.
- Obtén más información sobre cómo administrar paquetes de Node.js
- Obtén más información para administrar imágenes de contenedores.
- Cómo descargar archivos individuales dentro de un paquete