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.
Inicie sesión en su organización de Azure DevOps y vaya al proyecto.
Seleccione Artefactos y, a continuación, Crear feed.
Escriba la siguiente información para la fuente:
- Escriba un nombre descriptivo para la fuente.
- Defina su visibilidad (que indica quién puede ver los paquetes dentro de la fuente).
- Seleccione si se van a usar paquetes de orígenes públicos, como pypi.org.
- Especifique el ámbito de la fuente.
Seleccione Crear.
Vaya a la colección de Azure DevOps y seleccione el proyecto.
Seleccione Artefactos y, a continuación, Crear feed.
Escriba la siguiente información para la fuente:
- Escriba un nombre descriptivo para la fuente.
- Defina su visibilidad (que indica quién puede ver los paquetes dentro de la fuente).
- Seleccione si se van a usar paquetes de orígenes públicos, como pypi.org.
- Especifique el ámbito de la fuente.
Seleccione Crear.
Vaya a la colección de Azure DevOps y seleccione el proyecto.
Seleccione Artefactos y, a continuación, seleccione Crear fuente para crear una nueva fuente.
Escriba la siguiente información para la fuente:
- Escriba un nombre descriptivo para la fuente.
- Defina su visibilidad (que indica quién puede ver los paquetes dentro de la fuente).
- Seleccione si se van a usar paquetes de orígenes públicos, como pypi.org.
- Especifique el ámbito de la fuente.
Seleccione Crear.
Vaya a la colección de Azure DevOps y seleccione el proyecto.
Seleccione Artefactos y, a continuación, seleccione Crear fuente para crear una nueva fuente.
Escriba la siguiente información para la fuente:
- Escriba un nombre descriptivo para la fuente.
- Defina su visibilidad (que indica quién puede ver los paquetes dentro de la fuente).
- Elija si desea usar paquetes de orígenes públicos, como pypi.org.
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.
Vaya al siguiente repositorio de GitHub:
https://github.com/microsoft/python-package-template
Bifurque el repositorio de GitHub a su cuenta de GitHub.
Vaya al repositorio bifurcada y seleccione Código.
Copie la dirección URL del repositorio bifurcada.
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 <REPOSITORY_URL>
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:
- Use el paquete artifacts-keyring, que configura automáticamente la autenticación automáticamente.
- 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
Seleccione Conectar para alimentar desde la fuente.
Seleccione twine y copie la dirección URL del repositorio en la sección Configuración del proyecto.
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.
Vaya a Su proyecto de Azure DevOps y seleccione Artefactos.
Seleccione la fuente y seleccione Conectar para alimentar.
Seleccione twine en la sección Python .
En el equipo de desarrollo, asegúrese de que twine está instalado.
pip install --upgrade twine
Siga las instrucciones de la sección Configuración del proyecto para configurar el
.pypirc
archivo.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>
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
En el proyecto, seleccione Artefactos y, a continuación, seleccione la fuente.
Seleccione Conectar a la fuente.
Seleccione pip en la sección Python .
Prepare el entorno local de Python.
Asegúrese de que pip está instalado y actualizado:
python -m pip install --upgrade pip
Para crear y activar un entorno virtual de Python:
python -m venv myenv myenv/Scripts/activate
Copie desde
index-url
la sección Configuración del proyecto del Conectar para alimentar el cuadro de diálogo.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
Vaya a Su proyecto de Azure DevOps y seleccione Artefactos.
Seleccione la fuente y seleccione Conectar para alimentar.
Seleccione pip en la sección Python .
Prepare el entorno local de Python.
Asegúrese de que pip está instalado y actualizado:
python -m pip install --upgrade pip
Cree y active un entorno virtual de Python:
python -m venv myenv myenv/Scripts/activate
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.
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] index-url=https://<FEED_NAME>:<YOUR_PERSONAL_ACCESS_TOKEN>@<FEED_URL>
Para instalar el paquete, ejecute el siguiente comando reemplazando <PACKAGE_NAME> por el nombre del paquete de la fuente.
pip install <PACKAGE_NAME>