Anaconda 환경을 사용하여 파이프라인 실행
Azure DevOps Services
파이프라인에서 Python과 함께 Anaconda를 설정하고 사용하는 방법을 알아봅니다. Anaconda는 데이터 과학 및 기계 학습을 위한 Python 배포입니다.
시작하기
다음 지침에 따라 Anaconda 환경이 있는 샘플 Python 앱에 대한 파이프라인을 설정합니다.
Azure DevOps 조직에 로그인하고, 프로젝트로 이동합니다.
프로젝트에서 파이프라인 페이지로 이동합니다. 그런 다음, 작업을 선택하여 새 파이프라인을 만듭니다.
먼저 소스 코드의 위치로 GitHub를 선택하여 마법사의 단계를 진행합니다.
로그인할 GitHub로 리디렉션될 수 있습니다. 그렇다면 GitHub 자격 증명을 입력합니다.
리포지토리 목록이 나타나면 Anaconda 샘플 리포지토리를 선택합니다.
Azure Pipelines는 리포지토리의 코드를 분석하고 기존
azure-pipelines.yml
파일을 검색합니다.실행을 선택합니다.
새 실행이 시작됩니다. 실행이 끝날 때까지 기다립니다.
팁
이 항목에 설명된 대로 YAML 파일을 변경하려면 파이프라인 페이지에서 파이프라인을 선택한 다음 파일을 편집합니다azure-pipelines.yml
.
시스템 경로에 conda 추가
호스트된 에이전트에서 Conda는 Python 버전이 설치된 다른 버전과 충돌하지 않도록 기본적으로 제외 PATH
됩니다. task.prependpath
에이전트 명령은 모든 후속 단계에서 사용할 수 있도록 합니다.
- bash: echo "##vso[task.prependpath]$CONDA/bin"
displayName: Add conda to PATH
환경 만들기
명령줄 인수에서
명령은 conda create
전달하는 인수를 사용하여 환경을 만듭니다.
- bash: conda create --yes --quiet --name myEnvironment
displayName: Create Anaconda environment
YAML에서
Anaconda 환경에 대한 구성을 정의하는 리포지토리에 파일을 체크 인 environment.yml
할 수 있습니다.
- script: conda env create --quiet --file environment.yml
displayName: Create Anaconda environment
참고 항목
자체 호스팅 에이전트를 사용하고 마지막에 환경을 제거하지 않으면 환경이 이미 있으므로 다음 빌드에서 오류가 발생합니다. 해결하려면 다음 인수conda env create --quiet --force --file environment.yml
를 --force
사용합니다.
참고 항목
스토리지를 공유하는 자체 호스팅 에이전트를 사용하고 동일한 Anaconda 환경을 사용하여 병렬로 작업을 실행하는 경우 해당 환경 간에 충돌이 발생할 수 있습니다.
해결하려면 인수 및 고유 식별자를 빌드 변수와의 연결과 같은 인수 값으로 $(Build.BuildNumber)
사용합니다--name
.
Anaconda에서 패키지 설치
다음 YAML은 이름이 myEnvironment
conda 환경에 패키지를 설치합니다scipy
.
- bash: |
source activate myEnvironment
conda install --yes --quiet --name myEnvironment scipy
displayName: Install Anaconda packages
Anaconda 환경에서 파이프라인 단계 실행
참고 항목
각 빌드 단계는 자체 프로세스에서 실행됩니다.
Anaconda 환경을 활성화하면 현재 프로세스를 편집 PATH
하고 다른 변경 내용을 적용합니다.
따라서 Anaconda 환경은 각 단계에 대해 별도로 활성화되어야 합니다.
- bash: |
source activate myEnvironment
python -m pytest --junitxml=junit/unit-test.xml
displayName: pytest
- task: PublishTestResults@2
inputs:
testResultsFiles: 'junit/*.xml'
condition: succeededOrFailed()
FAQ
"사용 권한 거부" 오류가 표시되는 이유는 무엇인가요?
호스트된 macOS에서 에이전트 사용자에게 Miniconda가 설치된 디렉터리의 소유권이 없습니다. 해결 방법은 시스템 경로에 conda 추가 아래의 "호스트된 macOS" 탭을 참조하세요.
빌드가 한 conda create
단계 또는 conda install
단계에서 응답하지 않는 이유는 무엇인가요?
전달 --yes
하지 않으면 conda가 중지되고 사용자 상호 작용을 기다립니다.
Windows에서 내 스크립트가 환경을 활성화한 후 중지되는 이유는 무엇인가요?
Windows에서는 activate
Batch 스크립트입니다. 이 명령을 사용하여 활성화한 call
후 스크립트 실행을 다시 시작해야 합니다.
파이프라인에서 사용하는 call
예제를 참조하세요.
여러 버전의 Python으로 테스트를 실행하려면 어떻게 해야 하나요?
Azure Pipelines에서 Python 앱 빌드를 참조 하세요.