오류없이 "conda install --yes --file requirements.txt"를 사용하여 사용 가능한 패키지 만 설치
다음 명령을 통해 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
Be aware that using Conda and pip together can cause some heartburn because they can unknowingly blow away each other's dependencies. You are supposed to install all of your Conda packages first and then all of your pip packages afterward, rather than alternating between the two. If your environment breaks, the official recommendation is to delete and recreate it (from your environment.yml
file). For more details, see this guide:
'Program Tip' 카테고리의 다른 글
postgresql의 IF-THEN-ELSE 문 (0) | 2020.11.20 |
---|---|
.gitignore 특정 파일 제외 (0) | 2020.11.20 |
스타-스키마 디자인 (0) | 2020.11.20 |
힘내 풀 : 오류 : 항목 foo가 업데이트되지 않았습니다. (0) | 2020.11.20 |
addEventListener를 사용하는 핸들러 내의 "this"값 (0) | 2020.11.20 |