Spouštění kanálů s prostředími Anaconda

Azure DevOps Services

Zjistěte, jak ve svém kanálu nastavit a používat Anacondu s Pythonem. Anaconda je distribuce Pythonu pro datové vědy a strojové učení.

Začínáme

Postupujte podle těchto pokynů a nastavte kanál pro ukázkovou aplikaci v Pythonu s prostředím Anaconda.

  1. Přihlaste se ke své organizaci Azure DevOps a přejděte do svého projektu.

  2. V projektu přejděte na stránku Pipelines (Kanály ). Pak zvolte akci pro vytvoření nového kanálu.

  3. Projděte si kroky průvodce tak, že nejprve jako umístění zdrojového kódu vyberete GitHub .

  4. Můžete být přesměrováni na GitHub kvůli přihlášení. Pokud ano, zadejte své přihlašovací údaje GitHubu.

  5. Jakmile se zobrazí seznam úložišť, vyberte ukázkové úložiště Anaconda.

  6. Azure Pipelines bude analyzovat kód ve vašem úložišti a rozpozná existující azure-pipelines.yml soubor.

  7. Vyberte Run (Spustit).

  8. Spustí se nové spuštění. Počkejte na dokončení.

Tip

Pokud chcete v souboru YAML provést změny, jak je popsáno v tomto tématu, vyberte kanál na stránce Pipelines (Kanály ) a pak vyberte Edit the azure-pipelines.yml file (Upravit soubor).

Přidání conda do systémové cesty

U hostovaných agentů je conda ve výchozím nastavení vynechán PATH , aby jeho verze Pythonu nezůstala v konfliktu s jinými nainstalovanými verzemi. Příkaz task.prependpath agenta ho zpřístupní všem dalším krokům.

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

Vytvoření prostředí

Z argumentů příkazového řádku

Příkaz conda create vytvoří prostředí s argumenty, které mu předáte.

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

Z YAML

Můžete vrátit soubor se změnami environment.yml do vašeho úložiště, který definuje konfiguraci prostředí Anaconda.

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

Poznámka

Pokud používáte agenta v místním prostředí a prostředí na konci neodeberete, zobrazí se při dalším sestavení chyba, protože prostředí už existuje. Pokud chcete tento problém vyřešit, použijte --force argument : conda env create --quiet --force --file environment.yml.

Poznámka

Pokud používáte agenty v místním prostředí, kteří sdílejí úložiště, a spouštíte úlohy paralelně pomocí stejných prostředí Anaconda, můžou mezi těmito prostředími docházet ke konfliktům. Pokud chcete tento problém vyřešit, použijte jako hodnotu argumentu --name a jedinečný identifikátor, například zřetězení s $(Build.BuildNumber) proměnnou sestavení.

Instalace balíčků z Anacondy

Následující YAML nainstaluje scipy balíček do prostředí conda s názvem myEnvironment.

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

Spuštění kroků kanálu v prostředí Anaconda

Poznámka

Každý krok sestavení běží ve vlastním procesu. Když aktivujete prostředí Anaconda, bude upravovat PATH a provádět další změny svého aktuálního procesu. Proto musí být prostředí Anaconda aktivováno samostatně pro každý krok.

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

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

Nejčastější dotazy

Proč se mi zobrazuje chyba Oprávnění odepřeno?

V hostovaném systému macOS nemá uživatel agenta vlastnictví adresáře, ve kterém je nainstalovaná aplikace Miniconda. Opravu najdete na kartě Hostovaný macOS v části Přidání conda do systémové cesty.

Proč build přestane reagovat v conda create kroku nebo conda install ?

Pokud zapomenete předat --yes, conda se zastaví a počká na interakci uživatele.

Proč se můj skript ve Windows po aktivaci prostředí zastavuje?

Ve Windows activate je skript Batch. K obnovení spouštění skriptu po aktivaci musíte použít call příkaz . Podívejte se na příklady použití callv kanálu.

Jak můžu testy spouštět s více verzemi Pythonu?

Viz Vytváření aplikací v Pythonu v Azure Pipelines.