Partilhar via


Executar pipelines com ambientes do Anaconda

Azure DevOps Services

Saiba como configurar e utilizar o Anaconda com o Python no seu pipeline. O Anaconda é uma distribuição python para ciência de dados e machine learning.

Introdução

Siga estas instruções para configurar um pipeline para uma aplicação Python de exemplo com o ambiente do Anaconda.

  1. Inicie sessão na sua organização do Azure DevOps e navegue para o seu projeto.

  2. No seu projeto, navegue para a página Pipelines . Em seguida, escolha a ação para criar um novo pipeline.

  3. Veja os passos do assistente ao selecionar primeiro o GitHub como a localização do código fonte.

  4. Poderá ser redirecionado para o GitHub para iniciar sessão. Em caso afirmativo, introduza as suas credenciais do GitHub.

  5. Quando for apresentada a lista de repositórios, selecione o repositório de exemplo do Anaconda.

  6. Os Pipelines do Azure irão analisar o código no seu repositório e detetar um ficheiro existente azure-pipelines.yml .

  7. Selecione Executar.

  8. É iniciada uma nova execução. Aguarde a conclusão da execução.

Dica

Para fazer alterações ao ficheiro YAML conforme descrito neste tópico, selecione o pipeline na página Pipelines e, em seguida, Edite o azure-pipelines.yml ficheiro.

Adicionar conda ao caminho do sistema

Nos agentes alojados, a Conda fica de PATH fora por predefinição para impedir que a versão do Python entre em conflito com outras versões instaladas. O task.prependpath comando do agente irá disponibilizá-lo para todos os passos subsequentes.

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

Criar um ambiente

A partir de argumentos de linha de comandos

O conda create comando irá criar um ambiente com os argumentos que transmitir.

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

A partir do YAML

Pode dar entrada de um environment.yml ficheiro no seu repositório que define a configuração de um ambiente do Anaconda.

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

Nota

Se estiver a utilizar um agente autoalojado e não remover o ambiente no final, receberá um erro na compilação seguinte, uma vez que o ambiente já existe. Para resolver, utilize o --force argumento: conda env create --quiet --force --file environment.yml.

Nota

Se estiver a utilizar agentes autoalojados que estão a partilhar o armazenamento e a executar tarefas em paralelo com os mesmos ambientes do Anaconda, poderão existir conflitos entre esses ambientes. Para resolver, utilize o --name argumento e um identificador exclusivo como o valor do argumento, como uma concatenação com a $(Build.BuildNumber) variável de compilação.

Instalar pacotes a partir do Anaconda

O YAML seguinte instala o scipy pacote no ambiente conda denominado myEnvironment.

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

Executar passos de pipeline num ambiente do Anaconda

Nota

Cada passo de compilação é executado no seu próprio processo. Quando ativa um ambiente do Anaconda, este será editado e efetuará PATH outras alterações ao processo atual. Por conseguinte, um ambiente do Anaconda tem de ser ativado separadamente para cada passo.

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

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

FAQs

Por que motivo estou a receber um erro "Permissão negada"?

No macOS alojado, o utilizador do agente não tem a propriedade do diretório onde a Miniconda está instalada. Para obter uma correção, consulte o separador "MacOS alojado" em Adicionar conda ao caminho do sistema.

Porque é que a minha compilação deixa de responder num conda create ou conda install passo?

Se se esquecer de passar --yes, o Conda irá parar e aguardar pela interação do utilizador.

Porque é que o meu script no Windows está a parar depois de ativar o ambiente?

No Windows, activate encontra-se um script do Batch. Tem de utilizar o comando para retomar a execução do call script após a ativação. Veja exemplos de utilização callnum pipeline.

Como posso executar os meus testes com várias versões do Python?

Veja Criar aplicações Python nos Pipelines do Azure.