다음 명령을 통해 Conda를 사용하여 requirements.txt에 패키지를 설치하는 동안
conda install --yes --file requirements.txt
requirements.txt의 패키지를 사용할 수없는 경우 아래와 같은 “패키지 없음 오류”가 발생합니다.
Anaconda Cloud API 사이트 https://api.anaconda.org 사용
패키지 메타 데이터를 가져 오는 중 : ….
오류 : 현재 linux-64 채널에서 다음과 일치하는 패키지를 찾을 수 없음 : nimfa == 1.2.3
anaconda.org에서이 패키지를 검색 할 수 있습니다.
anaconda search -t conda nimfa ==1.2.3
오류를 발생시키는 대신 requirements.txt에 사용 가능한 모든 패키지를 설치하고 사용할 수없는 패키지에 대해 경고를 표시하도록이 동작을 변경할 수 있습니까?
오류가 표시된 nimfa 패키지를 사용할 수 없으므로 pip를 설치할 수 있기 때문에 이것을 좋아합니다. 따라서 conda install --yes --file requirements.txt
사용할 수없는 패키지에 대한 경고 만 표시하도록 의 동작을 변경할 수 있다면 pip install -r requirments.txt
.travis.yml 의 명령 으로 후속 조치를 취할 수 있으므로 TravisCI가 사용 가능한 어느 위치에서나 설치를 시도합니다.
답변
나는 파일의 줄을 반복하는 것으로 끝났습니다.
$ while read requirement; do conda install --yes $requirement; done < requirements.txt
편집 : conda를 통해 사용할 수없는 경우 pip를 사용하여 패키지를 설치하려면 다음을 수행하십시오.
$ while read requirement; do conda install --yes $requirement || pip install $requirement; done < requirements.txt
편집 : Windows를 사용하는 경우 (크레딧은 @Clay 로 이동 ) :
$ FOR /F "delims=~" %f in (requirements.txt) DO conda install --yes "%f" || pip install "%f"
답변
에서 언급 한 바와 같이이 작업을 수행 할 수 이
.yml 파일로 내보내기
conda env export > freeze.yml
재현하려면 :
conda env create -f freeze.yml
답변
찾는 사람들을 위해 생선 껍질에 대한 @TillHoffmann의 솔루션으로 이것을 사용했습니다.
$ while read requirement; conda install --yes $requirement; end < requirements.txt
과
$ while read requirement; conda install --yes $requirement;or pip install $requirement; end < requirements.txt
답변
여기서 Pbms의 대답은 복사 할 기존 환경이 있다고 가정 할 때 올바른 방법입니다. Conda는에 나열된대로 Conda 패키지와 pip 패키지를 모두 설치할 수 있습니다 environment.yml
. 전체 프로세스를 더 자세히 문서화하고 싶었습니다. 폴더 기반 환경을 사용 --prefix [path to environment folder]
하고 있으므로 대부분의 명령에 추가 했습니다.
다음 env
과 같이 현재 폴더에 있는 폴더에 기존 프로젝트의 환경을 설치했다고 가정 해 보겠습니다 .
conda create --prefix ./env
다음 environment.yml
과 같이 해당 프로젝트의 환경에 대해 생성 합니다.
conda env export --prefix ./env > environment.yml
다른 폴더에 복사 environment.yml
한 다음 실행하여 다른 폴더 내에 새 환경을 만듭니다 .
conda env create --prefix ./env --file environment.yml
environment.yml
다시 한 번 environment.yml
거기에 복사 한 다음 거기에서 실행 하면 이미 존재하는 환경이 일치 합니다 .
conda env update --prefix ./env --file environment.yml --prune
해당 환경이 활성화 된 상태에서 다음과 같이 패키지 상태를 확인합니다.
conda list
다음은 해당 명령이 인쇄 할 수있는 내용의 요약 된 버전입니다 (pip 패키지는으로 표시됨 pypi
).
# Name Version Build Channel
pip 19.2.2 py37_0
python 3.7.4 h5263a28_0
numpy 1.16.4 py37h19fb1c0_0
pandas 0.25.1 py37ha925a31_0
pyodbc 4.0.27 py37ha925a31_0
ibm-db 3.0.1 pypi_0 pypi
ibm-db-sa 0.3.5 pypi_0 pypi
마지막으로 environment.yml
다음과 같은 형태의 요약 된 버전입니다 (pip 패키지는 자체 범주에 나열되어 있음).
dependencies:
- pip=19.2.2=py37_0
- python=3.7.4=h5263a28_0
- numpy=1.16.4=py37h19fb1c0_0
- pandas=0.25.1=py37ha925a31_0
- pyodbc=4.0.27=py37ha925a31_0
- pip:
- ibm-db==3.0.1
- ibm-db-sa==0.3.5
Conda와 pip를 함께 사용하면 무의식적으로 서로의 의존성을 날려 버릴 수 있기 때문에 속쓰림을 유발할 수 있습니다. 두 패키지를 번갈아 가며 사용하지 말고 먼저 모든 Conda 패키지를 설치 한 다음 나중에 모든 pip 패키지를 설치해야합니다. 환경이 깨지면 공식 권장 사항은 environment.yml
파일 에서 삭제하고 다시 만드는 것 입니다. 자세한 내용은 다음 가이드를 참조하세요.