Udostępnij za pośrednictwem


Uruchamianie potoków za pomocą środowisk Anaconda

Usługa Azure DevOps Services

Dowiedz się, jak skonfigurować środowisko Anaconda i używać go z językiem Python w potoku. Anaconda to dystrybucja języka Python na potrzeby nauki o danych i uczenia maszynowego.

Rozpoczęcie pracy

Postępuj zgodnie z tymi instrukcjami, aby skonfigurować potok dla przykładowej aplikacji języka Python w środowisku Anaconda.

  1. Zaloguj się do organizacji usługi Azure DevOps i przejdź do projektu.

  2. W projekcie przejdź do strony Potoki . Następnie wybierz akcję, aby utworzyć nowy potok.

  3. Zapoznaj się z krokami kreatora, wybierając najpierw usługę GitHub jako lokalizację kodu źródłowego.

  4. Być może nastąpi przekierowanie do usługi GitHub w celu zalogowania się. Jeśli tak, wprowadź poświadczenia usługi GitHub.

  5. Po wyświetleniu listy repozytoriów wybierz przykładowe repozytorium Anaconda.

  6. Usługa Azure Pipelines przeanalizuje kod w repozytorium i wykryje istniejący azure-pipelines.yml plik.

  7. Wybierz pozycję Uruchom.

  8. Uruchomiono nowy przebieg. Poczekaj na zakończenie przebiegu.

Porada

Aby wprowadzić zmiany w pliku YAML zgodnie z opisem w tym temacie, wybierz potok na stronie Potoki , a następnie edytujazure-pipelines.yml plik.

Dodawanie środowiska conda do ścieżki systemowej

W przypadku hostowanych agentów środowisko Conda jest domyślnie pominięte PATH , aby zachować konflikt wersji języka Python z innymi zainstalowanymi wersjami. Polecenie task.prependpath agenta udostępni je wszystkim kolejnym krokom.

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

Tworzenie środowiska

Z argumentów wiersza polecenia

Polecenie conda create utworzy środowisko z przekazanymi argumentami.

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

Z pliku YAML

Możesz zaewidencjonować plik w environment.yml repozytorium, który definiuje konfigurację środowiska Anaconda.

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

Uwaga

Jeśli używasz własnego agenta i nie usuwasz środowiska na końcu, w następnej kompilacji wystąpi błąd, ponieważ środowisko już istnieje. Aby rozwiązać ten problem, użyj argumentu --force : conda env create --quiet --force --file environment.yml.

Uwaga

Jeśli używasz własnych agentów, którzy współużytkują magazyn i uruchamiasz zadania równolegle przy użyciu tych samych środowisk Anaconda, mogą wystąpić konflikty między tymi środowiskami. Aby rozwiązać ten problem, użyj argumentu --name i unikatowego identyfikatora jako wartości argumentu, na przykład łączenia ze zmienną kompilacji $(Build.BuildNumber) .

Instalowanie pakietów z platformy Anaconda

Poniższy kod YAML instaluje scipy pakiet w środowisku conda o nazwie myEnvironment.

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

Uruchamianie kroków potoku w środowisku Anaconda

Uwaga

Każdy krok kompilacji jest uruchamiany we własnym procesie. Po aktywowaniu środowiska Anaconda zostanie ono edytowane PATH i wprowadzone inne zmiany w bieżącym procesie. W związku z tym środowisko Anaconda musi być aktywowane oddzielnie dla każdego kroku.

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

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

Często zadawane pytania

Dlaczego występuje błąd "Odmowa uprawnień"?

W systemie macOS hostowany użytkownik agenta nie ma własności katalogu, w którym zainstalowano narzędzie Miniconda. Aby uzyskać poprawkę, zobacz kartę "Hosted macOS" (Hostowany system macOS) w obszarze Add conda to your system path (Dodawanie środowiska conda do ścieżki systemowej).

Dlaczego moja kompilacja przestaje odpowiadać na conda create krok lub conda install ?

Jeśli zapomnisz przekazać --yespolecenie , conda zatrzyma się i zaczeka na interakcję z użytkownikiem.

Dlaczego mój skrypt w systemie Windows jest zatrzymywany po aktywowaniu środowiska?

W systemie Windows activate jest skryptem usługi Batch. Należy użyć polecenia , call aby wznowić uruchamianie skryptu po aktywowaniu. Zobacz przykłady użycia callw potoku.

Jak mogę uruchomić testy z wieloma wersjami języka Python?

Zobacz Tworzenie aplikacji języka Python w usłudze Azure Pipelines.