Folyamatok futtatása Anaconda-környezetekkel

Azure DevOps Services

Megtudhatja, hogyan állíthatja be és használhatja az Anaconda-t a Pythonnal a folyamatban. Az Anaconda egy Python-disztribúció az adatelemzéshez és a gépi tanuláshoz.

Bevezetés

Az alábbi utasításokat követve beállíthat egy folyamatot egy minta Python-alkalmazáshoz az Anaconda-környezettel.

  1. Jelentkezzen be az Azure DevOps-szervezetbe, és lépjen a projekthez.

  2. A projektben lépjen a Folyamatok lapra. Ezután válassza ki a műveletet egy új folyamat létrehozásához.

  3. A varázsló lépéseit követve először válassza ki a GitHubot a forráskód helyeként.

  4. Előfordulhat, hogy a rendszer átirányítja a GitHubra a bejelentkezéshez. Ha igen, adja meg a GitHub hitelesítő adatait.

  5. Amikor megjelenik az adattárak listája, válassza ki az Anaconda-mintaadattárat.

  6. Az Azure Pipelines elemzi az adattárban lévő kódot, és észlel egy meglévő azure-pipelines.yml fájlt.

  7. Válassza a Futtatás lehetőséget.

  8. Elindul egy új futtatás. Várja meg, amíg a futtatás befejeződik.

Tipp

Ha módosítani szeretné a YAML-fájlt a jelen témakörben leírtak szerint, válassza ki a folyamatot a Folyamatok lapon, majd szerkessze a azure-pipelines.yml fájlt.

Conda hozzáadása a rendszerútvonalhoz

Az üzemeltetett ügynökök esetében a Conda alapértelmezés szerint kimarad PATH , hogy a Python-verziója ne ütközjön más telepített verziókkal. Az task.prependpath ügynökparancs elérhetővé teszi az összes további lépéshez.

- bash: echo "##vso[task.prependpath]$CONDA/bin"
  displayName: Add conda to PATH

Környezet létrehozása

Parancssori argumentumokból

A conda create parancs létrehoz egy környezetet az átadott argumentumokkal.

- bash: conda create --yes --quiet --name myEnvironment
  displayName: Create Anaconda environment

A YAML-ből

Beadhat egy environment.yml fájlt az adattárba, amely meghatározza az Anaconda-környezet konfigurációját.

- script: conda env create --quiet --file environment.yml
  displayName: Create Anaconda environment

Megjegyzés

Ha saját üzemeltetésű ügynököt használ, és a végén nem távolítja el a környezetet, hibaüzenet jelenik meg a következő buildben, mivel a környezet már létezik. A probléma megoldásához használja a --force következő argumentumot: conda env create --quiet --force --file environment.yml.

Megjegyzés

Ha saját üzemeltetésű ügynököket használ, amelyek tárolót osztanak meg, és ugyanazokat az Anaconda-környezeteket használva futtat párhuzamosan feladatokat, előfordulhat, hogy összeütközések vannak a környezetek között. A probléma megoldásához használja az --name argumentumot és egy egyedi azonosítót argumentumértékként, például a buildváltozóval való $(Build.BuildNumber) összefűzést.

Csomagok telepítése az Anacondából

A következő YAML telepíti a scipy csomagot a conda nevű myEnvironmentkörnyezetben.

- bash: |
    source activate myEnvironment
    conda install --yes --quiet --name myEnvironment scipy
  displayName: Install Anaconda packages

Folyamatlépések futtatása Anaconda-környezetben

Megjegyzés

Minden buildelési lépés a saját folyamatában fut. Amikor aktivál egy Anaconda-környezetet, az módosítja PATH és más módosításokat hajt végre az aktuális folyamaton. Ezért az Anaconda-környezetet minden lépéshez külön kell aktiválni.

- bash: |
    source activate myEnvironment
    python -m pytest --junitxml=junit/unit-test.xml
  displayName: pytest

- task: PublishTestResults@2
  inputs:
    testResultsFiles: 'junit/*.xml'
  condition: succeededOrFailed()

Gyakori kérdések

Miért kapok "Engedély megtagadva" hibaüzenetet?

A üzemeltetett macOS-en az ügynök felhasználója nem rendelkezik a Miniconda telepítésére szolgáló könyvtár tulajdonjogával. A javítást a Conda hozzáadása a rendszerútvonalhoz területen található "Üzemeltetett macOS" lapon találhatja meg.

Miért nem válaszol a build egy conda create vagy conda install egy lépésre?

Ha elfelejti átadni a parancsot --yes, a Conda leáll, és megvárja a felhasználói interakciót.

Miért áll le a windowsos szkriptem, miután aktiválta a környezetet?

Windows activate rendszeren egy Batch-szkript. Az aktiválás után a call parancsot kell használnia a szkript futtatásának folytatásához. Példák a folyamatokban való használatracall.

Hogyan futtathatom a teszteimet a Python több verziójával?

Lásd: Python-alkalmazások létrehozása az Azure Pipelinesban.