Udostępnij przez


Uruchamianie potoków przy użyciu środowisk Anaconda

Azure DevOps Services

Skonfiguruj Anacondę i używaj jej z Pythonem w swoim potoku. Anaconda to dystrybucja języka Python do nauki o danych i uczenia maszynowego.

Wymagania wstępne

Język Python jest wstępnie zainstalowany na agentach hostowanych przez firmę Microsoft dla systemów Linux, macOS i Windows. Nie musisz konfigurować jeszcze nic więcej w celu kompilowania projektów języka Python. Aby zobaczyć, które wersje języka Python są wstępnie zainstalowane, zobacz Oprogramowanie.

produkt Wymagania
Azure DevOps Projekt usługi Azure DevOps.
— Możliwość uruchamiania pipeline'ów na agentach hostowanych przez firmę Microsoft. Możesz kupić zadanie równoległe lub poprosić o bezpłatny poziom.
— Podstawowa wiedza na temat języka YAML i usługi Azure Pipelines. Aby uzyskać więcej informacji, zobacz Utwórz swój pierwszy potok.
- Uprawnienia:
     - Aby utworzyć potok: musisz należeć do grupy Contributorzy, a grupa musi mieć uprawnienie Utworzyć potok ustawione na Zezwalaj. Członkowie grupy Administratorzy projektu mogą zarządzać potokami.
    - Aby utworzyć połączenia usług: musisz mieć rolę Administrator lub Twórca dla połączeń usług.
GitHub — Konto usługi GitHub .
Połączenie usługi GitHub w celu autoryzowania usługi Azure Pipelines.

Wprowadzenie

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

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

  2. W projekcie przejdź do strony Potoki . Następnie wybierz działanie, aby utworzyć nowy pipeline.

  3. Najpierw przejdź przez kroki kreatora, wybierając 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 GitHub.

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

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

  7. Wybierz Uruchom.

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

Napiwek

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

Dodaj conda do ścieżki systemowej

Na hostowanych agentach, conda nie jest domyślnie uwzględniana w PATH, aby zapobiec konfliktowi wersji języka Python z innymi zainstalowanymi wersjami. Użyj polecenia agenta task.prependpath , aby zapewnić dostęp do conda we wszystkich kolejnych krokach.

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

Utwórz środowisko

Z argumentów wiersza polecenia

Polecenie conda create tworzy ś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, usuń środowisko przed utworzeniem nowego środowiska za pomocą polecenia conda env remove --name your-env-name.

Uwaga

Jeśli używasz samodzielnie hostowanych agentów, które współdzielą pamięć i uruchamiają zadania równolegle przy użyciu tych samych środowisk Anaconda, może dochodzić do konfliktów między tymi środowiskami. Aby rozwiązać ten problem, użyj argumentu --name i unikatowego identyfikatora jako wartości argumentu, na przykład poprzez konkatenację ze zmienną kompilacji $(Build.BuildNumber).

Instalowanie pakietów z platformy Anaconda

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

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

Uruchamianie kroków przepływu w środowisku Anaconda

Uwaga

Każdy krok kompilacji działa we własnym procesie. Po aktywowaniu środowiska Anaconda edytowany jest plik PATH i następują inne zmiany w bieżącym procesie. Dlatego aktywuj środowisko Anaconda oddzielnie dla każdego kroku.

- bash: |
    conda 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 jest właścicielem katalogu, w którym zainstalowano narzędzie Miniconda. Aby rozwiązać ten problem, przejdź do karty "Hostowany system macOS" w obszarze Dodaj conda do ścieżki systemowej.

Dlaczego moja kompilacja przestaje odpowiadać podczas kroku conda create lub conda install?

Jeśli nie przekażesz --yes, conda zatrzymuje się i czeka na wprowadzenie danych przez użytkownika.

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

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

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

Przejdź do obszaru Tworzenie aplikacji języka Python w usłudze Azure Pipelines.