Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Azure DevOps Services
Configurez et utilisez Anaconda avec Python dans votre pipeline. Anaconda est une distribution Python pour la science des données et le Machine Learning.
Prerequisites
Python est préinstallé sur les agents hébergés par Microsoft pour Linux, macOS et Windows. Vous n'avez pas besoin de faire de configuration supplémentaire pour créer des projets Python. Pour voir quelles versions python sont préinstallées, consultez Software.
| Produit | Exigences |
|---|---|
| Azure DevOps | - Un projet Azure DevOps . - Possibilité d’exécuter des pipelines sur des agents hébergés par Microsoft. Vous pouvez acheter un travail parallèle ou demander un niveau gratuit. - Connaissance de base de YAML et d’Azure Pipelines. Pour plus d’informations, consultez Créer votre premier pipeline. - Autorisations: - Pour créer un pipeline : vous devez être dans le groupe Contributeurs et le groupe doit avoir l'autorisation Créer un pipeline de construction définie sur Autoriser. Les membres du groupe Administrateurs de projet peuvent gérer les pipelines. - Pour créer des connexions de service : vous devez avoir le rôle Administrateur ou Créateur pour les connexions de service. |
| GitHub | - Un compte GitHub . - Connexion de service GitHub pour autoriser Azure Pipelines. |
Bien démarrer
Suivez ces instructions pour configurer un pipeline pour un exemple d’application Python avec un environnement Anaconda.
Connectez-vous à votre organisation Azure DevOps et accédez à votre projet.
Dans votre projet, accédez à la page Pipelines. Choisissez ensuite l’action pour créer un pipeline.
Suivez les étapes de l’Assistant en sélectionnant d’abord GitHub comme emplacement du code source.
Vous serez peut-être redirigé vers GitHub pour vous connecter. Si c’est le cas, entrez vos informations d’identification GitHub.
Lorsque la liste des référentiels s’affiche, sélectionnez votre référentiel d’exemple Anaconda.
Azure Pipelines analyse le code dans votre référentiel et détecte un fichier existant
azure-pipelines.yml.Sélectionnez Exécuter.
Une nouvelle exécution est lancée. Attendez la fin de l’exécution.
Conseil
Pour apporter des modifications au fichier YAML comme décrit dans cet article, sélectionnez le pipeline dans la page Pipelines , puis modifiez le azure-pipelines.yml fichier.
Ajouter conda à votre chemin d’accès système
Sur les agents hébergés, conda n’est pas inclus par PATH défaut pour empêcher sa version de Python d'entrer en conflit avec d’autres versions installées. Utilisez la commande de l’agent task.prependpath pour rendre conda disponible pour toutes les étapes ultérieures.
- bash: echo "##vso[task.prependpath]$CONDA/bin"
displayName: Add conda to PATH
Créer un environnement
À partir des arguments de la ligne de commande
La conda create commande crée un environnement avec les arguments que vous passez.
- bash: conda create --yes --quiet --name myEnvironment
displayName: Create Anaconda environment
À partir de YAML
Vous pouvez archiver un fichier environment.yml dans votre référentiel qui définit la configuration d’un environnement Anaconda.
- script: conda env create --quiet --file environment.yml
displayName: Create Anaconda environment
Notes
Si vous utilisez un agent auto-hébergé et que vous ne supprimez pas l’environnement à la fin, vous obtenez une erreur sur la prochaine build, car l’environnement existe déjà. Pour résoudre ce problème, supprimez l’environnement avant de créer un nouvel environnement avec conda env remove --name your-env-name.
Notes
Si vous utilisez des agents auto-hébergés qui partagent le stockage et exécutent des travaux en parallèle à l’aide des mêmes environnements Anaconda, il peut y avoir des conflits entre ces environnements. Pour résoudre ce problème, utilisez l’argument --name et un identificateur unique comme valeur d’argument, comme une concaténation avec la variable de $(Build.BuildNumber) build.
Installer des packages à partir d’Anaconda
Le YAML suivant installe le package scipy dans l’environnement conda nommé myEnvironment.
- bash: |
conda activate myEnvironment
conda install --yes --quiet --name myEnvironment scipy
displayName: Install Anaconda packages
Exécuter les étapes de pipeline dans un environnement Anaconda
Notes
Chaque étape de génération s’exécute dans son propre processus.
Lorsque vous activez un environnement Anaconda, il modifie PATH et apporte d’autres modifications à son processus actuel.
Par conséquent, activez un environnement Anaconda séparément pour chaque étape.
- bash: |
conda activate myEnvironment
python -m pytest --junitxml=junit/unit-test.xml
displayName: pytest
- task: PublishTestResults@2
inputs:
testResultsFiles: 'junit/*.xml'
condition: succeededOrFailed()
Questions fréquentes (FAQ)
Pourquoi est-ce que je reçois une erreur « Autorisation refusée » ?
Sur macOS hébergé, l’utilisateur de l’agent ne possède pas le répertoire où Miniconda est installé. Pour résoudre ce problème, accédez à l’onglet « MacOS hébergé » sous Ajouter conda à votre chemin système.
Pourquoi ma build cesse-t-elle de répondre à une étape conda create ou conda install ?
Si vous ne passez pas --yes, conda s’arrête et attend l’entrée de l’utilisateur.
Pourquoi mon script sur Windows s’arrête-t-il après avoir activé l’environnement ?
Sur Windows, activate est un script Batch. Vous devez utiliser la commande call pour reprendre l’exécution de votre script après l’activation.
Consultez des exemples d’utilisation calldans un pipeline.
Comment puis-je exécuter mes tests avec plusieurs versions de Python ?
Accédez à Créer des applications Python dans Azure Pipelines.