[python] .yml 파일로 기존 Conda 환경을 업데이트하는 방법

기존 conda 환경을 다른 .yml 파일로 어떻게 업데이트 할 수 있습니까? 이것은 여러 요구 사항 파일이있는 프로젝트에서 작업 할 때 매우 유용합니다 base.yml, local.yml, production.yml.

예를 들어, 다음은 base.ymlconda-forge, conda 및 pip 패키지 가있는 파일입니다.

base.yml

name: myenv
channels:
  - conda-forge
dependencies:
  - django=1.10.5
  - pip:
    - django-crispy-forms==1.6.1

실제 환경은 다음으로 생성됩니다
conda env create -f base.yml.

나중에 추가 패키지를에 추가해야 base.yml합니다. 예를 들어 다른 파일은 local.yml이러한 업데이트를 가져와야합니다.

이를 달성하기위한 이전 시도는 다음과 같습니다.

local.yml가져 오기 정의 로 파일 만들기 :

channels:

dependencies:
  - pip:
    - boto3==1.4.4
imports:
  - requirements/base. 

그런 다음 다음 명령을 실행하십시오
conda install -f local.yml..

작동하지 않습니다. 이견있는 사람?



답변

conda env update를 사용해보십시오 .

conda activate myenv
conda env update --file local.yml

또는 환경을 활성화 할 필요없이 (@NumesSanguis에게 감사드립니다) :

conda env update --name myenv --file local.yml


답변

제안 된 답변은 부분적으로 정확합니다. environment.yml에서 제거 된 패키지도 제거 하려면 –prune 옵션 을 추가해야 합니다. 올바른 명령 :

conda env update -f local.yml --prune


답변

alkamid의 대답은 올바른 줄에 있지만 환경이 이미 활성화되어 있으면 Conda가 새 종속성을 설치하지 못하는 것으로 나타났습니다. 환경을 비활성화하면 먼저 다음이 해결됩니다.

source deactivate;
conda env update -f whatever.yml;
source activate my_environment_name; # Must be AFTER the conda env update line!


답변