Publicación y consumo de paquetes de Python mediante la línea de comandos (CLI)

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019

Azure Artifacts permite crear, hospedar y compartir paquetes de Python con su equipo u organización. Puede publicar y consumir paquetes de Python mediante una fuente de Azure Artifacts desde la línea de comandos del entorno de desarrollo local.

En este artículo, aprenderá a:

  • Cree una fuente de Azure Artifacts.
  • Configure la autenticación con el paquete de llaves de artefactos de Python o un token de acceso personal (PAT).
  • Publique paquetes de Python en la fuente.
  • Consumir paquetes de Python desde la fuente.

Para publicar y consumir paquetes en Azure Pipelines, consulte Publicación de paquetes de Python con Azure Pipelines.

Requisitos previos

Para ejecutar los pasos siguientes, debe tener:

  • Una organización de Azure DevOps. cree una de forma gratuita.
  • Un token de acceso personal (PAT) con ámbito de lectura de empaquetado>. Para crear uno, consulte Creación de un PAT.
  • Un proyecto de Azure DevOps. Si no tiene uno, cree un proyecto.
  • Python 3.9 o posterior instalado en el equipo local. Descargue Python aquí.
  • pip 24.0 y twine 5.0.0 o superior.
  • Un paquete de Python para publicar desde la máquina local en la fuente.
  • Si usa el paquete de Python de ejemplo:
    • Una cuenta de GitHub. Cree una cuenta de GitHub gratuita si aún no tiene una.
    • Git instalado en el equipo local.
  • Una cuenta de GitHub. Cree una cuenta de GitHub gratuita si aún no tiene una.
  • Acceso a una colección de Azure DevOps Server.
  • Un token de acceso personal (PAT) con ámbito de lectura de empaquetado>. Para crear uno, consulte Creación de un PAT.
  • Un proyecto de Azure DevOps. Si no tiene uno, cree un proyecto.
  • Python 3.9 o posterior instalado en el entorno de desarrollo local.
  • pip 24.0 y twine 5.0.0 o superior.
  • Si usa el paquete de Python de ejemplo:
    • Una cuenta de GitHub. Cree una cuenta de GitHub gratuita si aún no tiene una.
    • Git instalado en el equipo local.

Crear un feed de Azure Artifacts.

Si no tiene una fuente, siga estos pasos para crear una.

  1. Inicie sesión en su organización de Azure DevOps y vaya al proyecto.

  2. Seleccione Artefactos y, a continuación, Crear feed.

    A screenshot showing how to create a feed.

  3. Escriba la siguiente información para la fuente:

    1. Escriba un nombre descriptivo para la fuente.
    2. Defina su visibilidad (que indica quién puede ver los paquetes dentro de la fuente).
    3. Seleccione si se van a usar paquetes de orígenes públicos, como pypi.org.
    4. Especifique el ámbito de la fuente.
  4. Seleccione Crear.

  1. Vaya a la colección de Azure DevOps y seleccione el proyecto.

  2. Seleccione Artefactos y, a continuación, Crear feed.

    A screenshot showing how to create a feed in DevOps Server.

  3. Escriba la siguiente información para la fuente:

    1. Escriba un nombre descriptivo para la fuente.
    2. Defina su visibilidad (que indica quién puede ver los paquetes dentro de la fuente).
    3. Seleccione si se van a usar paquetes de orígenes públicos, como pypi.org.
    4. Especifique el ámbito de la fuente.
  4. Seleccione Crear.

  1. Vaya a la colección de Azure DevOps y seleccione el proyecto.

  2. Seleccione Artefactos y, a continuación, seleccione Crear fuente para crear una nueva fuente.

  3. Escriba la siguiente información para la fuente:

    1. Escriba un nombre descriptivo para la fuente.
    2. Defina su visibilidad (que indica quién puede ver los paquetes dentro de la fuente).
    3. Seleccione si se van a usar paquetes de orígenes públicos, como pypi.org.
    4. Especifique el ámbito de la fuente.
  4. Seleccione Crear.

  1. Vaya a la colección de Azure DevOps y seleccione el proyecto.

  2. Seleccione Artefactos y, a continuación, seleccione Crear fuente para crear una nueva fuente.

  3. Escriba la siguiente información para la fuente:

    1. Escriba un nombre descriptivo para la fuente.
    2. Defina su visibilidad (que indica quién puede ver los paquetes dentro de la fuente).
    3. Elija si desea usar paquetes de orígenes públicos, como pypi.org.
  4. Seleccione Crear.

Creación de un paquete de Python local

Necesita un paquete de Python para publicar en la fuente. Si no tiene un paquete para publicarlo, puede clonar un paquete de Python de ejemplo desde GitHub.

Clonación del paquete de Python de ejemplo

Siga estos pasos para usar el paquete de Python de ejemplo de GitHub.

  1. Vaya al siguiente repositorio de GitHub:

    https://github.com/microsoft/python-package-template
    
  2. Bifurque el repositorio de GitHub a su cuenta de GitHub.

  3. Vaya al repositorio bifurcada y seleccione Código.

  4. Copie la dirección URL del repositorio bifurcada.

  5. Desde una CLI de la máquina local, clone el repositorio en la máquina local mediante la dirección URL que copió del repositorio bifurcada.

    git clone <REPOSIORY_URL>
    
  6. Cambie el directorio al repositorio clonado.

    cd python-package-template
    

Compilación del paquete

Para compilar la rueda y la distribución de origen, ejecute los siguientes comandos en el directorio del proyecto:

pip install --upgrade build
python -m build

Si el proyecto de Python tiene un setup.py archivo, puede usar el siguiente comando para compilar el paquete:

python setup.py sdist bdist_wheel

Conexión a la fuente

Hay dos maneras principales de conectarse a una fuente para publicar o consumir los paquetes de Python:

  1. Use el paquete artifacts-keyring, que configura automáticamente la autenticación automáticamente.
  2. Configure manualmente las credenciales con un PAT.

Nota:

artifacts-keyring no se admite en versiones más recientes de Ubuntu.

Nota:

Si su organización usa un firewall o un servidor proxy, asegúrese de permitir direcciones IP y direcciones URL de dominio de Azure Artifacts.

Configuración del conjunto de claves de artefactos para la autenticación

El paquete artifacts-keyring funciona con el paquete de keyring de Python para permitirle configurar la autenticación para publicar y consumir los paquetes de Python en y desde la fuente. Tanto pip como twine usan el paquete de llaves de Python para buscar credenciales.

Importante

Debe tener pip 19.2 y twine 1.13.0 o superior para usar artefactos-keyring. Para obtener más información, consulte Requisitos de uso.

Si decide usar artefactos-keyring, debe instalar el paquete para poder usarlo.

En una ventana del símbolo del sistema con privilegios elevados, ejecute el siguiente comando para instalar el paquete artifacts-keyring:

pip install artifacts-keyring

Publicación de paquetes de Python

Puede publicar paquetes de Python en la fuente mediante el paquete de llaves de artefactos o la autenticación PAT.

Publicación de paquetes con artefactos-keyring

  1. Seleccione Conectar para alimentar desde la fuente.

    A screenshot highlighting the connect to feed.

  2. Seleccione twine y copie la dirección URL del repositorio en la sección Configuración del proyecto.

    A screenshot of instructions to connect to feed with twine.

  3. Para publicar un paquete en la fuente, ejecute el siguiente comando reemplazando <FEED_URL> por la dirección URL del repositorio que copió de la Conectar al cuadro de diálogo de fuente:

    twine upload --repository-url <FEED_URL> dist/*
    

Publicación de paquetes con autenticación PAT

Use twine para cargar el paquete en la fuente de Azure Artifacts.

  1. Vaya a Su proyecto de Azure DevOps y seleccione Artefactos.

  2. Seleccione la fuente y seleccione Conectar para alimentar.

    A screenshot highlighting the connect to feed.

  3. Seleccione twine en la sección Python .

    A screenshot highlighting the twine package type.

  4. En el equipo de desarrollo, asegúrese de que twine está instalado.

    pip install --upgrade twine
    
  5. Siga las instrucciones de la sección Configuración del proyecto para configurar el .pypirc archivo.

    A screenshot highlighting the `.pyirc` file content.

  6. Para evitar tener que escribir el token de acceso personal cada vez que publique un paquete, puede agregar sus credenciales al .pypirc archivo. Asegúrese de no comprobar el token de acceso personal en un repositorio público.

    Ejemplo de un .pypirc archivo con credenciales:

    [distutils]
    Index-servers =
        <FEED_NAME>
    
    [<FEED_NAME>]
    Repository = <FEED_URL>
    username = <FEED_NAME>
    password = <YOUR_PERSONAL_ACCESS_TOKEN>
    
  7. Para cargar el paquete, ejecute el siguiente comando en el directorio del proyecto reemplazando <FEED_NAME> por el nombre de la fuente. En Windows, es posible que tenga que especificar la ubicación del pypirc archivo con la --config-file opción .

    twine upload --repository <FEED_NAME> dist/*
    

Consumo de paquetes de Python

Puede consumir paquetes de Python desde la fuente mediante el paquete de llaves de artefactos o la autenticación PAT.

Consumo de paquetes con artefactos-keyring

  1. En el proyecto, seleccione Artefactos y, a continuación, seleccione la fuente.

  2. Seleccione Conectar a la fuente.

    A screenshot highlighting the connect to feed button.

  3. Seleccione pip en la sección Python .

    A screenshot of pip selection in Connect to feed.

  4. Prepare el entorno local de Python.

    1. Asegúrese de que pip está instalado y actualizado:

      python -m pip install --upgrade pip
      
    2. Para crear y activar un entorno virtual de Python:

      python -m venv myenv
      myenv/Scripts/activate
      
  5. Copie desde index-url la sección Configuración del proyecto del Conectar para alimentar el cuadro dediálogo.

    A screenshot of the index-url in the Connect to feed dialog.

  6. Para instalar un paquete desde la fuente, ejecute el siguiente comando reemplazando PACKAGE_NAME por el nombre del paquete de la fuente y <INDEX_URL> con la dirección URL de índice que copió del Conectar al cuadro de diálogo de fuente:><

    pip install <PACKAGE_NAME> --index-url <INDEX_URL>
    

Al conectarse a Azure DevOps por primera vez, se le pedirán credenciales. Escriba el nombre de usuario (cualquier cadena) y el token de acceso personal en los campos adecuados. Las credenciales se almacenarán en caché localmente y se usarán para iniciar sesión automáticamente la próxima vez que use el servicio.

Consumo de paquetes con autenticación PAT

  1. Vaya a Su proyecto de Azure DevOps y seleccione Artefactos.

  2. Seleccione la fuente y seleccione Conectar para alimentar.

    A screenshot highlighting the connect to feed button.

  3. Seleccione pip en la sección Python .

    A screenshot highlighting the pip package type.

  4. Prepare el entorno local de Python.

    1. Asegúrese de que pip está instalado y actualizado:

      python -m pip install --upgrade pip
      
    2. Cree y active un entorno virtual de Python:

      python -m venv myenv
      myenv/Scripts/activate
      
  5. Agregue un pip.ini (Windows) o un archivo pip.conf (Mac/Linux) al directorio raíz del entorno virtual. Copie el contenido de la sección Configuración del proyecto del Conectar para alimentar el cuadro de diálogo y agréguelo al archivo pip.ini o pip.conf.

    A screenshot highlighting the pip.ini file content.

  6. Para evitar tener que escribir el token de acceso personal cada vez que instale un paquete desde la fuente, puede agregar sus credenciales al archivo pip.ini o pip.conf . Asegúrese de no comprobar el token de acceso personal en un repositorio público.

    Ejemplo de un archivo pip.ini o pip.conf con credenciales:

    [global]
    extra-index-url=https://<FEED_NAME>:<YOUR_PERSONAL_ACCESS_TOKEN>@<FEED_URL>
    
  7. Para instalar el paquete, ejecute el siguiente comando reemplazando <PACKAGE_NAME> por el nombre del paquete de la fuente.

    pip install <PACKAGE_NAME>