Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Azure DevOps-tjänster
Konfigurera och använda Anaconda med Python i din pipeline. Anaconda är en Python-distribution för datavetenskap och maskininlärning.
Förutsättningar
Python är förinstallerat på agenter som är Microsoft-värdbaserade för Linux, macOS och Windows. Du behöver inte konfigurera något mer för att skapa Python-projekt. Information om vilka Python-versioner som är förinstallerade finns i Programvara.
| Produkt | Requirements |
|---|---|
| Azure DevOps | – Ett Azure DevOps-projekt. – En möjlighet att köra pipelines på Microsoft-hanterade agenter. Du kan antingen köpa ett parallellt jobb eller begära en kostnadsfri nivå. – Grundläggande kunskaper om YAML och Azure Pipelines. Mer information finns i Skapa din första pipeline. - Behörigheter: – Om du vill skapa en pipeline: du måste vara i gruppen Deltagare och gruppen måste ha behörigheten Skapa byggpipeline inställd på Tillåt. Medlemmar i gruppen Projektadministratörer kan hantera pipelines. – För att skapa tjänstanslutningar: Du måste ha rollen Administratör eller Skapare för tjänstanslutningar. |
| GitHub | – Ett GitHub-konto . – En GitHub-tjänstanslutning för att auktorisera Azure Pipelines. |
Kom igång
Följ de här anvisningarna för att konfigurera en pipeline för en Python-exempelapp med Anaconda-miljön.
Logga in på din Azure DevOps-organisation och gå till projektet.
I projektet navigerar du till sidan Pipelines . Välj sedan åtgärden för att skapa en ny pipeline.
Gå igenom stegen i guiden genom att först välja GitHub som plats för källkoden.
Du kan omdirigeras till GitHub för att logga in. I så fall anger du dina GitHub-autentiseringsuppgifter.
När listan med lagringsplatser visas väljer du din Anaconda-exempellagringsplats.
Azure Pipelines analyserar koden på din lagringsplats och identifierar en befintlig
azure-pipelines.ymlfil.Markera Kör.
En ny körning startas. Vänta tills körningen har slutförts.
Dricks
Om du vill göra ändringar i YAML-filen enligt beskrivningen i den här artikeln väljer du pipelinen på sidan Pipelines och sedan Redigeraazure-pipelines.yml filen.
Lägga till conda i systemsökvägen
På värdbaserade agenter ingår inte conda som standard för att undvika att Python-versionen hamnar i konflikt med andra installerade versioner.
task.prependpath Använd agentkommandot för att göra conda tillgängligt för alla senare steg.
- bash: echo "##vso[task.prependpath]$CONDA/bin"
displayName: Add conda to PATH
Skapa en miljö
Från kommandoradsargument
Kommandot conda create skapar en miljö med de argument som du skickar.
- bash: conda create --yes --quiet --name myEnvironment
displayName: Create Anaconda environment
Från YAML
Du kan checka in en environment.yml fil till lagringsplatsen som definierar konfigurationen för en Anaconda-miljö.
- script: conda env create --quiet --file environment.yml
displayName: Create Anaconda environment
Kommentar
Om du använder en lokalt installerad agent och inte tar bort miljön i slutet får du ett fel i nästa version eftersom miljön redan finns. Åtgärda detta genom att ta bort miljön innan du skapar en ny med conda env remove --name your-env-name.
Kommentar
Om du använder lokalt installerade agenter som delar lagrings- och körningsjobb parallellt med samma Anaconda-miljöer kan det uppstå konflikter mellan dessa miljöer. Åtgärda detta genom att använda argumentet --name och en unik identifierare som argumentvärde, till exempel en kombination med byggvariabeln $(Build.BuildNumber).
Installera paket från Anaconda
Följande YAML installerar scipy paketet i conda-miljön med namnet myEnvironment.
- bash: |
conda activate myEnvironment
conda install --yes --quiet --name myEnvironment scipy
displayName: Install Anaconda packages
Köra pipelinesteg i en Anaconda-miljö
Kommentar
Varje byggsteg körs i sin egen process.
När du aktiverar en Anaconda-miljö redigerar den PATH och gör andra ändringar i sin aktuella process.
Aktivera därför en Anaconda-miljö separat för varje steg.
- bash: |
conda activate myEnvironment
python -m pytest --junitxml=junit/unit-test.xml
displayName: pytest
- task: PublishTestResults@2
inputs:
testResultsFiles: 'junit/*.xml'
condition: succeededOrFailed()
Vanliga frågor
Varför får jag felmeddelandet "Behörighet nekad"?
På värdbaserad macOS äger agentanvändaren inte katalogen där Miniconda är installerat. Åtgärda problemet genom att gå till fliken "Hostad macOS" under Lägg till conda i din systemsökväg.
Varför slutar mitt bygge att svara i ett conda create eller conda install ett steg?
Om du inte skickar --yesstannar conda och väntar på användarindata.
Varför stoppas mitt skript i Windows när det har aktiverat miljön?
I Windows activate är ett Batch-skript. Du måste använda call kommandot för att fortsätta köra skriptet efter aktivering.
Se exempel på användning calli en pipeline.
Hur kan jag köra mina tester med flera versioner av Python?
Gå till Skapa Python-appar i Azure Pipelines.