Administra paquetes de Python

En esta página, se describe cómo agregar, visualizar y borrar paquetes y paquetes de Python versions.

Antes de comenzar

  1. Instala e inicializa el 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
    
  2. Si el repositorio de destino no existe, Crea un nuevo repositorio de paquetes de Python.

  3. Verifica que Python 3 esté instalado. Para obtener instrucciones de instalación, consulta la Instructivo para configurar Python de Google Cloud

  4. (Opcional) Configura valores predeterminados para los comandos de gcloud.

  5. 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

A fin de obtener los permisos que necesitas para administrar paquetes, solicita a tu administrador que te otorgue el los siguientes roles de IAM en el repositorio:

Si quieres obtener más información para otorgar roles, consulta Administra el acceso.

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 cargar paquetes a un 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 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. Según la configuración predeterminada, pip solo instala estable y lanzamientos de versiones. 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:

  1. Instala Twine.

    pip install twine
    
  2. Cambia al directorio del proyecto de Python.

  3. Sube los archivos de distribución al repositorio desde el proyecto dist. subdirectorio. 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 paquetes y versiones de paquetes con la consola de Google Cloud o gcloud:

Console

  1. Abre la página Repositorios en la consola de Google Cloud.

    Abrir la página Repositorios

  2. En la lista de repositorios, haz clic en el repositorio correspondiente.

    En la página Paquetes, se enumeran los paquetes del repositorio.

  3. 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]

Donde

  • REPOSITORY es el nombre del repositorio. Si configuraste un repositorio predeterminado, puedes omitir esta marca para usarlo.
  • LOCATION es un regional o multirregional location. Usa esta marca para ver los repositorios en una ubicación específica. Si configuraste una ubicación predeterminada, puedes omitir esta marca para usar el valor predeterminado.

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. para el paquete.
  • REPOSITORY es el nombre del repositorio. Si configuraste un repositorio predeterminado, puedes omitir esta marca para usarlo.
  • LOCATION es un regional o multirregional location. Usa esta marca para ver los repositorios en una ubicación específica. Si configuraste una ubicación predeterminada, puedes omitir esta marca para usar el valor predeterminado.

Para los repositorios remotos, la lista que se devuelve debe incluir todos los las dependencias transitivas.

Enumera los 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 Para ello, agrega 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 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: 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 del Ubicación us-west1 dentro del proyecto predeterminado:

gcloud artifacts files list \
    --location=us-west1 \
    --repository=my-repo
El siguiente comando muestra una lista de 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 su dependencias. Si no existe una copia almacenada en caché, el repositorio remoto descarga el paquete desde la fuente upstream y lo almacena en caché antes de proporcionárselo. Puedes verificar que el repositorio remoto haya recuperado los paquetes del fuente upstream mediante la visualización de 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é. Solo se solicitan los repositorios virtuales. paquetes, estos 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 repositorios ascendentes:

  • main-repo: Se estableció la prioridad en 100
  • secondary-repo1: Se estableció la prioridad en 80.
  • secondary-repo2: Se estableció la prioridad en 80.
  • test-repo: Se estableció la prioridad en 20.

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 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 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 especificación de identificador que pip a los usuarios para analizar números de versión, como versiones previas al lanzamiento.

Para incluir versiones previas al lanzamiento cuando pip busque un paquete para instalar, la marca --pre al comando.

pip install --pre PACKAGE

Para especificar una versión o un rango de versiones requerido, incluye una 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, tu configuración de pip en pip.conf determina cómo pip busca el paquete.

  • Si configuraste el repositorio de Artifact Registry con el index-url y no se configuraron otros índices de paquetes; solo realiza búsquedas con pip tu repositorio de Artifact Registry para el paquete.
  • 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, búsquedas de pip pypi.org y cualquier otro archivo los índices de paquetes y elige la versión más reciente del paquete.

Puedes anular index-url o extra-index-url del archivo requirements. 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 el 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. El fuente upstream no se ve afectada. Si borras un paquete almacenado en caché, Artifact Registry la descargará y almacenará en caché la próxima vez que de destino recibe 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:

Console

  1. Abre la página Repositorios en la consola de Google Cloud.

    Abrir la página Repositorios

  2. En la lista de repositorios, haz clic en el repositorio correspondiente.

    En la página Paquetes, se enumeran los paquetes del repositorio.

  3. Selecciona el paquete que quieres borrar.

  4. Haz clic en BORRAR.

  5. 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]

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 un regional o multirregional location. Usa esta marca para ver los repositorios en una ubicación específica. Si configuraste una ubicación predeterminada, puedes omitir esta marca para usar el valor predeterminado.
  • --async se muestra de inmediato, sin necesidad de esperar a que se complete la operación en curso.

Sigue estos pasos para borrar versiones de un paquete:

Console

  1. Abre la página Repositorios en la consola de Google Cloud.

    Abrir la página Repositorios

  2. En la lista de repositorios, haz clic en el repositorio correspondiente.

    En la página Paquetes, se enumeran los paquetes del repositorio.

  3. Haz clic en un paquete para ver sus versiones.

  4. Selecciona las versiones que deseas borrar.

  5. Haz clic en BORRAR.

  6. 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]

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 un regional o multirregional location. Usa esta marca para ver los repositorios en una ubicación específica. Si configuraste una ubicación predeterminada, puedes omitir esta marca para usar el valor predeterminado.
  • --async se muestra de inmediato, sin necesidad de esperar a que se complete la operación en curso.

¿Qué sigue?