Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Azure DevOps Services
Configura y utiliza Anaconda con Python en tu canalización. Anaconda es una distribución de Python para la ciencia de datos y el aprendizaje automático.
Prerrequisitos
Python está preinstalado en agentes hospedados por Microsoft para Linux, macOS y Windows. No tiene que configurar nada más para compilar proyectos de Python. Para ver qué versiones de Python están preinstaladas, consulte Software.
| Producto | Requisitos |
|---|---|
| Azure DevOps | - Un proyecto de Azure DevOps . - Tener la capacidad de ejecutar canalizaciones en agentes hospedados por Microsoft. Puede comprar un trabajo paralelo o solicitar un nivel gratis. - Conocimientos básicos de YAML y Azure Pipelines. Para obtener más información, consulte Creación de su primera canalización. - Permisos: - Para crear una canalización: debe estar en el grupo de usuarios Colaboradores y el grupo de usuarios debe tener el permiso Crear canalización de compilación configurado en Permitir. Los miembros del grupo Administradores de proyectos pueden administrar canalizaciones. - Para crear conexiones de servicio: debe tener el rol Administrador o Creador para las conexiones de servicio. |
| GitHub | - Una cuenta de GitHub . - Una conexión de servicio de GitHub para autorizar Azure Pipelines. |
Introducción
Siga estas instrucciones para configurar una canalización para una aplicación de Python de ejemplo con el entorno Anaconda.
Inicie sesión en su organización de Azure DevOps y vaya a su proyecto.
En el proyecto, vaya a la página Pipelines (Canalizaciones). A continuación, elija la acción para crear una canalización.
Siga los pasos del asistente y seleccione primero GitHub como ubicación del código fuente.
Puede que se le redirija a GitHub para iniciar sesión. Si es así, escriba sus credenciales de GitHub.
Cuando aparezca la lista de repositorios, seleccione el repositorio de ejemplo de Anaconda.
Azure Pipelines analiza el código del repositorio y detecta un archivo existente
azure-pipelines.yml.Seleccione Run (Ejecutar).
Se inicia una nueva ejecución. Espere a que finalice.
Sugerencia
Para realizar cambios en el archivo YAML como se describe en este artículo, seleccione la canalización en la página Canalizaciones y luego edite el archivo azure-pipelines.yml.
Adición de conda a la ruta de acceso del sistema
En los agentes hospedados, conda no se incluye por defecto. Esto se hace para evitar que la versión de Python de conda entre en conflicto con otras versiones instaladas. Use el task.prependpath comando del agente para que Conda esté disponible para todos los pasos posteriores.
- bash: echo "##vso[task.prependpath]$CONDA/bin"
displayName: Add conda to PATH
Creación de un entorno
Desde argumentos de la línea de comandos
El comando conda create crea un entorno con los argumentos que le pasas.
- bash: conda create --yes --quiet --name myEnvironment
displayName: Create Anaconda environment
Desde YAML
Puede insertar un archivo environment.yml en el repositorio que defina la configuración de un entorno de Anaconda.
- script: conda env create --quiet --file environment.yml
displayName: Create Anaconda environment
Nota
Si usa un agente autohospedado y no quita el entorno al final, obtendrá un error en la siguiente compilación porque el entorno ya existe. Para corregirlo, quite el entorno antes de crear uno nuevo con conda env remove --name your-env-name.
Nota
Si usa agentes autohospedados que comparten el almacenamiento y ejecutan trabajos en paralelo mediante los mismos entornos de Anaconda, puede haber conflictos entre esos entornos. Para corregirlo, use el --name argumento y un identificador único como valor de argumento, como una concatenación con la $(Build.BuildNumber) variable de compilación.
Instalación de paquetes desde Anaconda
El siguiente código YAML instala el paquete scipy en el entorno de conda llamado myEnvironment.
- bash: |
conda activate myEnvironment
conda install --yes --quiet --name myEnvironment scipy
displayName: Install Anaconda packages
Ejecución de pasos de canalización en un entorno Anaconda
Nota
Cada paso de compilación se ejecuta en su propio proceso.
Al activar un entorno de Anaconda, edita PATH y realiza otros cambios en su proceso actual.
Por lo tanto, active un entorno de Anaconda por separado para cada paso.
- bash: |
conda activate myEnvironment
python -m pytest --junitxml=junit/unit-test.xml
displayName: pytest
- task: PublishTestResults@2
inputs:
testResultsFiles: 'junit/*.xml'
condition: succeededOrFailed()
Preguntas más frecuentes
¿Por qué recibo el error "Permiso denegado"?
En macOS hospedado, el usuario del agente no posee el directorio donde está instalado Miniconda. Para corregir este problema, vaya a la pestaña "Hosted macOS" (Hospedado macOS) en Agregar conda a la ruta de acceso del sistema.
¿Por qué mi compilación deja de responder en un paso conda create o conda install?
Si no pasa --yes, conda se detiene y espera la entrada del usuario.
¿Por qué mi script de Windows se detiene después de activar el entorno?
En Windows, activate es un script de Batch. Debe usar el comando call para reanudar la ejecución del script después de activarlo.
Consulte ejemplos de uso callen una canalización.
¿Cómo puedo ejecutar mis pruebas con varias versiones de Python?
Vaya a Compilación de aplicaciones de Python en Azure Pipelines.