En esta página, se describe cómo agregar, visualizar y borrar paquetes de Python y sus versiones.
Antes de comenzar
Instala e initialize Google Cloud CLI.
Se requiere la versión 354.0.0 de Google Cloud CLI o una posterior para ejecutar comandos para 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. Si quieres obtener instrucciones de instalación, consulta el instructivo para configurar Python de Google Cloud.
(Opcional) Configura valores predeterminados para los comandos de gcloud.
Si usas la autenticación de llavero de claves con las credenciales de gcloud, accede a Google Cloud CLI con tu cuenta de usuario o de servicio.
Funciones obligatorias
Si deseas obtener los permisos que necesitas para administrar paquetes, solicita a tu administrador que te otorgue los siguientes roles de IAM en el repositorio:
-
Ver 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
)
Si quieres obtener más información para otorgar roles, consulta Administra el acceso.
Es posible que también puedas obtener los permisos necesarios a través de funciones personalizadas o, también, otras funciones predefinidas.
Agrega paquetes
Modos de repositorio: Estándar
Cuando compilas un proyecto de Python, los archivos de distribución se guardan en un subdirectorio dist
en el proyecto. Luego puedes usar Twine para cargar paquetes en un repositorio estándar.
Te sugerimos que sigas las prácticas recomendadas para tus paquetes:
- Usa nombres únicos para tus paquetes privados de modo que no coincidan con los nombres de paquetes en pypi.org, en especial si tu configuración de pip incluye varios índices de paquetes.
- Usa la especificación de identificador de versión en PEP 440 para los números de versión del paquete. Según la configuración predeterminada, pip solo instala versiones estables. Usa la especificación del identificador de versión para distinguir las versiones estables de las previas al lanzamiento y analizar los requisitos para instalar la versión.
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
Para ver los paquetes y sus versiones con Google Cloud Console o gcloud
, sigue estos pasos:
Consola
Abre la página Repositorios en la consola de Google Cloud.
En la lista de repositorios, haz clic en el repositorio correspondiente.
En la página Paquetes, se enumeran los paquetes del repositorio.
Haz clic en un paquete para ver las versiones de este.
gcloud
Para enumerar los paquetes en un repositorio, ejecuta el siguiente comando:
gcloud artifacts packages list [--repository=REPOSITORY] [--location=LOCATION]
¿Por dónde
- REPOSITORY es el nombre del repositorio. Si configuraste un repositorio predeterminado, puedes omitir esta marca para usarlo.
- LOCATION es una ubicación regional o multirregional. Usa esta marca para ver los repositorios en una ubicación específica. Si configuraste una ubicación predeterminada, puedes omitir esta marca para usarla.
Para ver las versiones de un paquete, ejecuta el siguiente comando:
gcloud artifacts versions list --package=PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION]
Donde
- PACKAGE es el ID del paquete o el identificador completamente calificado del paquete.
- REPOSITORY es el nombre del repositorio. Si configuraste un repositorio predeterminado, puedes omitir esta marca para usarlo.
- LOCATION es una ubicación regional o multirregional. Usa esta marca para ver los repositorios en una ubicación específica. Si configuraste una ubicación predeterminada, puedes omitir esta marca para usarla.
Para los repositorios remotos, la lista que se muestra debe incluir todas las dependencias directas y transitivas.
Enumera los archivos
Modos de repositorio: Estándar, remoto
Puedes enumerar archivos de un repositorio, archivos de todas las versiones de un paquete específico o archivos de una versión específica de un paquete.
Para todos los comandos siguientes, puedes configurar 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 la ubicación predeterminados cuando se configuran los valores predeterminados, haz lo siguiente:
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 enumerar los archivos de todas las versiones de un paquete específico, ejecuta el siguiente comando:
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION \
--package=PACKAGE
Para enumerar los archivos de una versión de paquete específica, haz lo siguiente:
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION \
--package=PACKAGE \
--version=VERSION
Reemplaza los siguientes valores:
LOCATION
: Es la ubicaciónregional o multirregionaldel 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 almacena la imagen.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 ubicación us-west1
dentro del proyecto predeterminado:
gcloud artifacts files list \
--location=us-west1 \
--repository=my-repo
Con el siguiente comando, se enumeran los archivos de la versión 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, virtual
Usa el comando pip
para instalar paquetes.
Para instalar la versión estable más reciente de un paquete, ejecuta el comando:
pip install PACKAGE
Para los repositorios estándar, debes descargar un paquete directamente desde el repositorio.
En el caso de un repositorio remoto, debes descargar una copia almacenada en caché del paquete y sus 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. Puedes ver la lista de paquetes del repositorio para verificar que el repositorio remoto haya recuperado los paquetes de la fuente ascendente.
En el caso de 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 en caché. Los repositorios virtuales solo entregan paquetes solicitados, no los almacenan.
- Si solicitas una versión que está disponible en más de un repositorio upstream, 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 repositorios ascendentes:
main-repo
: Se estableció la prioridad en100
secondary-repo1
: Se estableció la prioridad en80
.secondary-repo2
: Se estableció la prioridad 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.
secondary-repo1
y secondary-repo2
tienen la prioridad establecida en 80
. Si un
paquete solicitado no está disponible en main-repo
, Artifact Registry
busca en estos repositorios a continuación. Como 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 lo tiene.
Información adicional
De forma predeterminada, pip instala versiones estables de un paquete y omite las versiones previas al lanzamiento. PEP 440 define la especificación del identificador de versión de Python que aplica pip a los usuarios para que analicen los números de versión, incluidas las versiones previas al lanzamiento.
Para incluir versiones previas al lanzamiento cuando pip busca un paquete para instalar, usa la marca --pre
en tu comando.
pip install --pre PACKAGE
Para especificar una versión o un rango de versiones requerido, incluye un especificador de requisitos. Puedes incluir el requisito de versión directamente en tu comando o usar un archivo de requisitos.
Por ejemplo, este comando especifica que la versión mínima de my-package
es la 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
está en el repositorio, pip elegirá la versión 1.0
en lugar de una versión previa al lanzamiento.
Si no especificas un repositorio, tu configuración de pip en pip.conf
determina cómo busca pip el paquete.
- Si configuraste el repositorio de Artifact Registry con la configuración
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 las prioridades configuradas en la política upstream para elegir un paquete cuando varios repositorios ascendentes tienen la versión del paquete solicitada. Si dos repositorios con el paquete tienen la misma prioridad, Artifact Registry la entrega desde cualquiera de los repositorios.
- Si configuraste pip con la configuración
extra-index-url
o si configuraste varios índices de paquetes, pip busca pypi.org y cualquier otro índice de paquete configurado, y elige la versión más reciente del paquete.
Puedes anular la configuración index-url
o extra-index-url
en el archivo requirements. También puedes usar marcas para esta configuración en tu comando de pip. Por ejemplo, este comando
anula index-url
por 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 ascendente no se ve afectada. Si borras un paquete almacenado en caché, Artifact Registry lo descargará y almacenará en caché la próxima vez que el repositorio reciba una solicitud para la misma versión del paquete.
Antes de borrar un paquete o una versión de un paquete, verifica que se haya comunicado o abordado cualquier dependencia importante en este.
Para borrar un paquete, haz lo siguiente:
Consola
Abre la página Repositorios en la consola de Google Cloud.
En la lista de repositorios, haz clic en el repositorio correspondiente.
En la página Paquetes, se enumeran los paquetes del repositorio.
Selecciona el paquete que quieres borrar.
Haz clic en BORRAR.
En el cuadro de diálogo de confirmación, haz clic en BORRAR.
gcloud
Ejecuta el siguiente comando:
gcloud artifacts packages delete PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION] [--async]
¿Por dónde
- PACKAGE es el nombre del paquete en el repositorio.
- REPOSITORY es el nombre del repositorio. Si configuraste un repositorio predeterminado, puedes omitir esta marca para usarlo.
- LOCATION es una ubicación regional o multirregional. Usa esta marca para ver los repositorios en una ubicación específica. Si configuraste una ubicación predeterminada, puedes omitir esta marca para usarla.
--async
se muestra de inmediato, sin necesidad de esperar a que se complete la operación en curso.
Para borrar versiones de un paquete, haz lo siguiente:
Consola
Abre la página Repositorios en la consola de Google Cloud.
En la lista de repositorios, haz clic en el repositorio correspondiente.
En la página Paquetes, se enumeran los paquetes del repositorio.
Haz clic en un paquete para ver sus versiones.
Selecciona las versiones que deseas borrar.
Haz clic en BORRAR.
En el cuadro de diálogo de confirmación, haz clic en BORRAR.
gcloud
Ejecuta el siguiente comando:
gcloud artifacts versions delete VERSION \
--package=PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION] \
[--async]
¿Por dónde
- PACKAGE es el nombre del paquete en el repositorio.
- REPOSITORY es el nombre del repositorio. Si configuraste un repositorio predeterminado, puedes omitir esta marca para usarlo.
- LOCATION es una ubicación regional o multirregional. Usa esta marca para ver los repositorios en una ubicación específica. Si configuraste una ubicación predeterminada, puedes omitir esta marca para usarla.
--async
se muestra de inmediato, sin necesidad de esperar a que se complete la operación en curso.
¿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
- Descarga archivos individuales dentro de un paquete