Uruchamianie potoków przy użyciu środowisk Anaconda
Azure DevOps Services
Dowiedz się, jak skonfigurować środowisko Anaconda i używać go w języku Python w potoku. Anaconda to dystrybucja języka Python do nauki o danych i uczenia maszynowego.
Rozpocznij
Postępuj zgodnie z tymi instrukcjami, aby skonfigurować potok dla przykładowej aplikacji języka Python ze środowiskiem Anaconda.
Zaloguj się do organizacji usługi Azure DevOps i przejdź do projektu.
W projekcie przejdź do strony Potoki . Następnie wybierz akcję, aby utworzyć nowy potok.
Zapoznaj się z krokami kreatora, wybierając najpierw usługę GitHub jako lokalizację kodu źródłowego.
Być może nastąpi przekierowanie do usługi GitHub w celu zalogowania się. Jeśli tak, wprowadź poświadczenia usługi GitHub.
Po wyświetleniu listy repozytoriów wybierz przykładowe repozytorium Anaconda.
Usługa Azure Pipelines przeanalizuje kod w repozytorium i wykryje istniejący
azure-pipelines.yml
plik.Wybierz Uruchom.
Uruchomiono nowy przebieg. Poczekaj na zakończenie przebiegu.
Napiwek
Aby wprowadzić zmiany w pliku YAML zgodnie z opisem w tym temacie, wybierz potok na stronie Potoki , a następnie edytuj azure-pipelines.yml
plik.
Dodawanie środowiska conda do ścieżki systemowej
W przypadku hostowanych agentów conda jest domyślnie pominięta 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
Utwórz środowisko
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, zostanie wyświetlony błąd w następnej kompilacji, 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ą $(Build.BuildNumber)
kompilacji.
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 będzie edytować PATH
i wprowadzać 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 conda do ścieżki systemowej).
Dlaczego moja kompilacja przestaje odpowiadać na conda create
krok lub conda install
?
Jeśli zapomnisz przekazać --yes
polecenie , 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 call
w potoku.
Jak mogę uruchomić testy z wieloma wersjami języka Python?
Zobacz Tworzenie aplikacji języka Python w usłudze Azure Pipelines.