Guía de inicio rápido para Python

En esta guía de inicio rápido, se muestra cómo configurar un repositorio de PyPI de Artifact Registry y subir un paquete a él.

La administración de paquetes se encuentra en versión Alfa. Solo está disponible para los usuarios Alfa y es posible que no incluya todas las funciones disponibles para la administración de contenedores. Si deseas postularte para la versión Alfa, completa el formulario de registro. Si quieres obtener más información, consulta Requisitos para acceder a las funciones Alfa.

Antes de comenzar

  1. Accede a tu cuenta de Google Cloud. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. En la página del selector de proyectos de Google Cloud Console, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyecto

  3. Asegúrate de que la facturación esté habilitada para tu proyecto de Cloud. Descubre cómo confirmar que tienes habilitada la facturación en un proyecto.

  4. Habilita la API Artifact Registry.

    Habilita la API

  5. Se necesita la versión 329.0.0 de la herramienta de gcloud para trabajar con repositorios de PyPI. Instala y, luego, inicializa el SDK de Cloud si aún no lo has hecho. Para una instalación existente, actualiza los componentes con el siguiente comando:

        gcloud components update
        

    Puedes ejecutar el siguiente comando para verificar la versión de la herramienta de gcloud:

        gcloud version
        
  6. Instala Python 3 y crea un entorno virtual de Python. Si deseas obtener instrucciones a fin de seguir estos pasos, consulta el instructivo para configurar Python en Google Cloud.

Cree un repositorio

Crea el repositorio para tus paquetes.

  1. Crea el repositorio:

    Console

    1. Abre la página Repositorios en Cloud Console.

      Abrir la página Repositorios

    2. Haz clic en Crear repositorio.

    3. Especifica quickstart-pypi-repo como el nombre del repositorio.

    4. Elige el formato PyPI como formato.

    5. En Tipo de ubicación, selecciona Región y, luego, elige la ubicación us-central1.

    6. Haga clic en Crear.

    El repositorio se agrega a la lista de repositorios.

    gcloud

    1. Ejecuta el siguiente comando para crear un nuevo repositorio de PyPI en el proyecto actual denominado quickstart-pypi-repo en la ubicación us-central1.

      gcloud alpha artifacts repositories create quickstart-pypi-repo \
          --repository-format=pypi \
          --location=us-central1 \
          --description="PyPI repository"
      
    2. Ejecuta el siguiente comando para verificar que se haya creado el repositorio:

      gcloud artifacts repositories list
      

    Para obtener más información sobre los comandos de Artifact Registry, ejecuta el comando gcloud artifacts.

  2. Para simplificar los comandos de gcloud, configura el repositorio predeterminado como quickstart-pypi-repo y la ubicación predeterminada como us-central1. Una vez configurados los valores, no necesitas especificarlos en los comandos de gcloud que requieren un repositorio o una ubicación.

    Para configurar el repositorio, ejecuta el siguiente comando:

    gcloud config set artifacts/repository quickstart-pypi-repo
    

    Para configurar la ubicación, ejecuta el siguiente comando:

    gcloud config set artifacts/location us-central1
    

    Para obtener más información sobre estos comandos, consulta la documentación de establecimiento de la configuración de gcloud.

Configura la autenticación

La biblioteca de llavero de claves de Python proporciona a las aplicaciones una forma de acceder a backends de llavero de claves, es decir, sistemas operativos y almacenes de credenciales de terceros.

Artifact Registry proporciona el backend de llavero de claves keyrings.google-artifactregistry-auth para controlar la autenticación con los repositorios de Artifact Registry. Cuando usas este backend desde un producto o servicio de Google Cloud, Artifact Registry busca tus credenciales de forma automática en el entorno.

Para configurar la autenticación con el backend del llavero de claves de Artifact Registry, haz lo siguiente:

  1. En la versión 21.1 de pip, se cambió el comportamiento para consultar el llavero de claves a las credenciales. Para asegurarte de que usas una versión de pip que puede autenticarse con repositorios de Artifact Registry, haz lo siguiente:

    1. Verifica tu versión de pip.

      pip --version
      
    2. Si estás usando la versión 21.1 o una posterior, instala la versión 21.0.1.

      python -m pip install pip==21.0.1
      
  2. Instala la biblioteca de llavero de claves.

    pip install keyring
    
  3. Instala el backend de Artifact Registry.

    pip install keyrings.google-artifactregistry-auth
    
  4. Enumera los backends para confirmar la instalación.

    keyring --list-backends
    

    La lista debe incluir

    • ChainerBackend(priority:10)
    • GooglePyPIAuth(priority: 9)
  5. Ejecuta el siguiente comando para imprimir la configuración del repositorio a fin de agregarla a tu proyecto de Python.

    gcloud alpha artifacts print-settings pypi
    

    El resultado es similar al siguiente ejemplo:

    # Insert the following snippet into your .pypirc
    
    [distutils]
    index-servers =
        quickstart-pypi-repo
    
    [quickstart-pypi-repo]
    repository: https://us-central1-pypi.pkg.dev/PROJECT/quickstart-pypi-repo/
    
    # Insert the following snippet into your pip.conf
    
    [global]
    index-url = https://us-central1-pypi.pkg.dev/PROJECT/quickstart-pypi-repo/simple/
    
  6. Agrega la siguiente configuración al archivo .pypirc. La ubicación predeterminada es para el archivo de configuración pip por usuario:

    • Linux y MacOS: $HOME/.pypirc
    • Windows: %USERPROFILE%\.pypirc
    [distutils]
    index-servers =
        quickstart-pypi-repo
    
    [quickstart-pypi-repo]
    repository: https://us-central1-pypi.pkg.dev/PROJECT/quickstart-pypi-repo/
    

    Reemplaza PROJECT con el ID del proyecto.

  7. Edita el archivo de configuración de pip para incluir la siguiente configuración en la sección [global]. La ubicación predeterminada es para el archivo de configuración pip por usuario:

    • Linux: $HOME/.config/pip/pip.conf o $HOME/.pip/pip.conf
    • MacOS: /Library/Application Support/pip/pip.conf o $HOME/.config/pip/pip.conf
    • Windows: %APPDATA%\pip\pip.ini o %USERPROFILE%\pip\pip.ini

    En esta guía de inicio rápido, configura pip para que solo busque en el repositorio de Artifact Registry. Agrega la siguiente configuración a la sección [global]:

    [global]
    index-url = https://us-central1-pypi.pkg.dev/PROJECT/quickstart-pypi-repo/simple/
    

    La string /simple/ al final de la ruta del repositorio indica que el repositorio implementa la API de repositorio simple de Python.

  8. Accede al SDK de Cloud con tus credenciales de usuario.

    gcloud auth login
    

Ahora, tu entorno de Python está configurado para autenticarse con Artifact Registry.

Obtén un paquete de ejemplo

Cuando compilas un proyecto de Python, los archivos de distribución se guardan en un subdirectorio dist en tu proyecto de Python. Para simplificar esta guía de inicio rápido, debes descargar archivos de paquetes compilados previamente.

  1. Crea un directorio llamado dist y, luego, usa el directorio.

    mkdir dist
    cd dist
    
  2. Descarga los paquetes de Python de muestra. Este proyecto de muestra se usa en el instructivo Empaquetado de proyectos de Python de la Guía del usuario de empaquetado de Python.

    Durante la instalación, pip priorizará las distribuciones de compilación específicas de la plataforma (los archivos que terminan en .whl). Si las distribuciones no son compatibles con el entorno de destino, pip recurre a la distribución de fuente para la instalación.

Sube el paquete al repositorio

Usa la herramienta de Python Twin para publicar paquetes.

  1. Instala Twine.

    pip install twine
    
  2. Sube los paquetes al repositorio desde tu directorio dist.

    twine upload --repository-url https://us-central1-pypi.pkg.dev/PROJECT/quickstart-pypi-repo/ dist/*
    

Visualiza el paquete en el repositorio

Para verificar que tu paquete se haya agregado al repositorio, haz lo siguiente:

Console

  1. Abre la página Repositorios en Cloud Console.

    Abrir la página Repositorios

  2. En la lista de repositorios, haz clic en el repositorio quickstart-pypi-repo.

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

gcloud

Para generar una lista de los paquetes en el repositorio quickstart-pypi-repo, ejecuta el siguiente comando:

gcloud artifacts packages list --repository=quickstart-pypi-repo

Para ver las versiones de un paquete, ejecuta el siguiente comando:

gcloud artifacts versions list --package=PACKAGE

En el ejemplo anterior, PACKAGE es el ID del paquete.

Instale el paquete

Ejecute el siguiente comando para instalar el paquete:

pip install --index-url https://us-central1-pypi.pkg.dev/PROJECT/quickstart-pypi-repo/simple/ sampleproject

Soluciona problemas

Según la configuración predeterminada, herramientas como pip y Twine no muestran mensajes de error detallados. Si encuentras un error, vuelve a ejecutar el comando con el parámetro --verbose para obtener un mensaje más detallado. Consulta Solución de problemas para ver un ejemplo.

Limpia

Sigue estos pasos para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos que usaste en esta guía de inicio rápido.

Antes de quitar el repositorio, asegúrate de que los paquetes que quieres conservar estén disponibles en otra ubicación.

Para borrar el repositorio, haz lo siguiente:

Console

  1. Abre la página Repositorios en Cloud Console.

    Abrir la página repositorios

  2. En la lista de repositorios, selecciona el repositorio quickstart-pypi-repo.

  3. Haz clic en Borrar.

gcloud

  1. Para borrar el repositorio quickstart-pypi-repo, ejecuta el siguiente comando:

    gcloud artifacts repositories delete quickstart-pypi-repo
    
  2. Si deseas quitar la configuración predeterminada de la ubicación y del repositorio que estableciste para la configuración activa de gcloud, ejecuta los siguientes comandos:

    gcloud config unset artifacts/repository
    gcloud config unset artifacts/location
    

¿Qué sigue?