Pijplijnen uitvoeren met Anaconda-omgevingen
Azure DevOps Services
Meer informatie over het instellen en gebruiken van Anaconda met Python in uw pijplijn. Anaconda is een Python-distributie voor gegevenswetenschap en machine learning.
Aan de slag
Volg deze instructies om een pijplijn in te stellen voor een Python-voorbeeld-app met een Anaconda-omgeving.
Meld u aan bij uw Azure DevOps-organisatie en navigeer naar uw project.
Navigeer in het project naar de pagina Pijplijnen. Kies vervolgens de actie om een nieuwe pijplijn te maken.
Doorloop de stappen van de wizard door eerst GitHub te selecteren als de locatie van de broncode.
U wordt mogelijk omgeleid naar GitHub om u aan te melden. Voer in dat geval uw GitHub-referenties in.
Wanneer de lijst met opslagplaatsen wordt weergegeven, selecteert u uw Anaconda-voorbeeldopslagplaats.
Azure Pipelines analyseert de code in uw opslagplaats en detecteert een bestaand
azure-pipelines.yml
bestand.Selecteer Uitvoeren.
Er wordt een nieuwe run gestart. Wacht tot de run is voltooid.
Tip
Als u wijzigingen wilt aanbrengen in het YAML-bestand, zoals beschreven in dit onderwerp, selecteert u de pijplijn op de pagina Pijplijnen en vervolgens Hetazure-pipelines.yml
bestand bewerken.
Conda toevoegen aan uw systeempad
Op gehoste agents wordt conda standaard buitengesloten PATH
om te voorkomen dat de Python-versie conflicteert met andere geïnstalleerde versies. De task.prependpath
agentopdracht maakt deze beschikbaar voor alle volgende stappen.
- bash: echo "##vso[task.prependpath]$CONDA/bin"
displayName: Add conda to PATH
Een omgeving maken
Van opdrachtregelargumenten
Met conda create
de opdracht wordt een omgeving gemaakt met de argumenten die u doorgeeft.
- bash: conda create --yes --quiet --name myEnvironment
displayName: Create Anaconda environment
Vanuit YAML
U kunt een environment.yml
bestand inchecken in uw opslagplaats waarin de configuratie voor een Anaconda-omgeving wordt gedefinieerd.
- script: conda env create --quiet --file environment.yml
displayName: Create Anaconda environment
Notitie
Als u een zelf-hostende agent gebruikt en de omgeving aan het einde niet verwijdert, krijgt u een foutmelding over de volgende build omdat de omgeving al bestaat. Gebruik het argument om dit --force
op te lossen: conda env create --quiet --force --file environment.yml
.
Notitie
Als u zelf-hostende agents gebruikt die opslag delen en taken parallel uitvoert met dezelfde Anaconda-omgevingen, zijn er mogelijk conflicten tussen deze omgevingen.
U kunt dit oplossen door het --name
argument en een unieke id als argumentwaarde te gebruiken, zoals een samenvoeging met de $(Build.BuildNumber)
buildvariabele.
Pakketten van Anaconda installeren
Met de volgende YAML wordt het scipy
pakket geïnstalleerd in de Conda-omgeving met de naam myEnvironment
.
- bash: |
source activate myEnvironment
conda install --yes --quiet --name myEnvironment scipy
displayName: Install Anaconda packages
Pijplijnstappen uitvoeren in een Anaconda-omgeving
Notitie
Elke buildstap wordt in een eigen proces uitgevoerd.
Wanneer u een Anaconda-omgeving activeert, worden deze bewerkt PATH
en andere wijzigingen aangebracht in het huidige proces.
Daarom moet voor elke stap een Anaconda-omgeving afzonderlijk worden geactiveerd.
- bash: |
source activate myEnvironment
python -m pytest --junitxml=junit/unit-test.xml
displayName: pytest
- task: PublishTestResults@2
inputs:
testResultsFiles: 'junit/*.xml'
condition: succeededOrFailed()
Veelgestelde vragen
Waarom krijg ik de fout 'Machtiging geweigerd'?
In gehoste macOS is de agentgebruiker niet eigenaar van de map waarin Miniconda is geïnstalleerd. Zie het tabblad 'Gehoste macOS' onder Conda toevoegen aan uw systeempad voor een oplossing.
Waarom reageert mijn build niet meer op een conda create
of-stap conda install
?
Als u vergeet door te geven --yes
, stopt conda en wacht op interactie van de gebruiker.
Waarom stopt mijn script in Windows nadat de omgeving is geactiveerd?
In Windows activate
is een Batch-script. U moet de call
opdracht gebruiken om het uitvoeren van het script te hervatten na het activeren.
Bekijk voorbeelden van het gebruik call
in een pijplijn.
Hoe kan ik mijn tests uitvoeren met meerdere versies van Python?
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort: Gedurende 2024 worden GitHub Issues uitgefaseerd als het feedbackmechanisme voor inhoud. Dit wordt vervangen door een nieuw feedbacksysteem. Ga voor meer informatie naar:Feedback verzenden en bekijken voor