Inicio rápido: Publicación y consumo de paquetes de Python con Azure Artifacts mediante la línea de comandos (CLI)

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

En este inicio rápido, aprenderá a crear una fuente de Azure Artifacts y a usar la fuente para publicar y consumir paquetes de Python desde la línea de comandos del entorno de desarrollo local. Cuando haya terminado, tendrá un paquete de Python publicado en la fuente e instalado desde la fuente al entorno de desarrollo local.

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.8 o posterior instalado en el equipo local. Descargue Python aquí.
  • pip 19.2 y twine 1.13.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.8 o posterior instalado en el entorno de desarrollo local.
  • pip 19.2 y twine 1.13.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.

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 en el equipo local, clone el repositorio con el siguiente comando mediante la dirección URL que copió del repositorio bifurcada:

    git clone <REPOSITORY_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

Crear feed

  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.

Publicación del paquete en la fuente

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` 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 el --config-file argumento .

    twine upload --repository <FEED_NAME> dist/*
    

Instalación de un paquete desde la fuente

  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>
    

Limpieza de recursos

Cuando haya terminado con los recursos creados, puede eliminarlos para evitar incurrir en cargos. Al eliminar un proyecto, se eliminan todas sus fuentes de artefactos de nivel de proyecto.

Para eliminar un proyecto:

  1. Seleccione Configuración del proyecto.
  2. En la página Detalles del proyecto , seleccione Eliminar en la parte inferior de la página.
  3. Escriba el nombre del proyecto para confirmar y, a continuación, seleccione Eliminar.

Si solo desea eliminar la fuente:

  1. Seleccione Artefactos y seleccione la fuente en el menú desplegable.
  2. Seleccione el botón de configuración.
  3. En la pestaña Configuración de fuente, seleccione Eliminar fuente.
  4. Seleccione Eliminar para confirmar.

Para limpiar el entorno de desarrollo local:

  1. Para desactivar el entorno virtual, ejecute el siguiente comando:

    deactivate
    
  2. Para eliminar el entorno virtual, elimine el directorio donde se creó.

  3. Quite el .pypirc archivo del directorio principal.

Si ha clonado el paquete de Python de ejemplo, puede eliminar el repositorio de la máquina local y la cuenta de GitHub.

Pasos siguientes