아나콘다는 가능한 모든 패키지를 업데이트 하시겠습니까?
나는 시도 conda search --outdated
예를 들어 scipy이 0.17.1하지만 최근은 0.18.0입니다, 오래된 패키지 많이 있습니다. 그러나 내가 할 때 conda update --all
. 패키지를 업데이트하지 않습니다.
업데이트 1
conda update --all --alt-hint
Fetching package metadata .......
Solving package specifications: ..........
# All requested packages already installed.
# packages in environment at /home/user/opt/anaconda2:
#
업데이트 2
해당 패키지를 별도로 업데이트 할 수 있습니다. 할 수 있습니다 conda update scipy
. 그러나 왜 한 번에 모두 업데이트 할 수 없습니까?
TL; DR : 종속성 충돌 : 갱신 한 요구 (그것의 요구에 의해) 다른 다운 그레이드
당신이 맞아요 :
conda update --all
실제로 갈 길입니다. Conda는 항상 패키지를 최신 버전 (Python 2.x 또는 3.x)으로 업그레이드하려고합니다.
종속성 충돌
그러나 종속성 충돌이있을 수 있습니다 (추가 업그레이드를 방해 함). Conda는 일반적으로 발생하는 경우 매우 명시 적으로 경고합니다.
예를 들어 X는 Y <5.0을 요구하므로 Y는 절대로 5.0보다 크지 않습니다.
그렇기 때문에 모든 것을 '업그레이드'할 수 없습니다.
해결
추가하려면 : 아마도 작동 할 수 있지만 Y> 5.0으로 작동하는 최신 버전의 X는 conda에서 사용할 수 없습니다. pip에서 더 많은 패키지를 사용할 수 있으므로 pip와 함께 설치할 수 있습니다. 그러나 의존성 충돌이 존재하는 경우 pip는 패키지를 설치하며 일반적으로 더 이상 conda로 안정적으로 설치할 수 없다는 의미에서 conda 환경을 손상시킵니다. 그렇게 할 경우 최후의 수단으로 모든 패키지를 conda와 함께 설치 한 후에 수행하십시오. 오히려 해킹입니다.
당신이 시도 할 수있는 안전한 방법은 업그레이드 할 때 채널로 conda-forge 를 추가 -c conda-forge
하거나 (플래그로 추가 ) 이 새로운 버전이 정말로 필요한 경우 패키지가 포함 된 다른 채널을 찾는 것입니다 . 이 방법으로 conda는이 장소에서 사용 가능한 패키지를 검색합니다.
업데이트 고려 : 개별적으로 업그레이드 할 수 있지만 업그레이드뿐만 아니라 다른 패키지의 다운 그레이드도 포함됩니다. 위의 예에 추가하려면 다음을 수행하십시오.
X> 2.0에는 Y <5.0 필요, X <2.0에는 Y> 5.0 필요
따라서 Y> 5.0을 업그레이드하면 X가 <2.0으로 다운 그레이드되고 그 반대도 마찬가지입니다.
(물론 이것은 교육학적인 예이지만 실제로는 더 복잡하고 하위 종속성이있는 경우와 동일합니다 )
당신은 여전히 업그레이드 할 수 없습니다 그래서 그들 모두를 개별적으로 업그레이드를 수행하여; 종속성은 만족스럽지 못하므로 이전 또는 이후에 업그레이드하면 이미 업그레이드 된 패키지가 다시 다운 그레이드됩니다. 또는 일반적으로 원하지 않는 패키지의 호환성을 무시 하십시오. 이는 명시 적으로 ignore-dependencies 및 force -command를 호출하여 가능합니다 . 그러나 만하는 것입니다 해킹 확실히 문제 주위에 당신의 방법이 아닌 일반 사용자의 경우!
질문에보다 정확하게 대답하려면 :
conda (anaconda의 경우 miniconda의 conda)는 패키지의 특정 버전 (> major 및 minor) 내에서만 업데이트됩니다. 이것이 패러다임입니다.
이 문서에서 "참고 : Conda는 시리즈에서 가장 높은 버전으로 업데이트되므로 Python 2.7은 2.x 시리즈에서 가장 높은 버전으로 업데이트되고 3.6은 3.x 시리즈에서 가장 높은 버전으로 업데이트됩니다." 문서
Wang이 재현 가능한 예를 제공하지 않으면 도움이 될 수 있습니다. 예를 들어 실제로 업데이트하려는 가상 환경이거나 Wang이 원하는 것을 얻을 수 있습니까?
conda update -n ENVIRONMENT --all
거의 모든 것만 업데이트하려면 핀 파일을 만들 수 있습니다
echo "conda ==4.0.0" >> ~/miniconda3/envs/py35/conda-meta/pinned
echo "numpy 1.7.*" >> ~/miniconda3/envs/py35/conda-meta/pinned
업데이트를 실행하기 전에
나중에 업데이트를 위해 env의 파일을 무시하려면 다음을 수행하십시오.
conda update --all --no-pin
--all을 업데이트하면 안됩니다. 그럼에도 불구하고 복제 된 환경에서이를 테스트하려면 보호기가 필요합니다.
첫 번째 단계는 항상 현재 사양을 백업하는 것이어야합니다.
conda list -n py35 --explicit
(그러나 그럼에도 불구하고 jupyterlab 확장과 같이 사용 가능한 소스에 대한 링크가 항상있는 것은 아닙니다)
다음으로 복제 및 업데이트 할 수 있습니다.
conda create -n py356 --clone py35
conda activate py356
conda config --set pip_interop_enabled True # for conda>=4.6
conda update --all
마지막으로 종속성으로 인해 호환되지 않는 패키지로 작업해야하는 경우 NixOS / nix-pkgs 와 같은 기술로 가능합니다 .
패키지의 수가 증가 할 때 패키지 업그레이드 / 추가시 충돌이 발생할 가능성이 훨씬 높은 패키지의 종속성 그래프를 상상해보십시오. 이를 피하려면 Anaconda에서 새 환경을 작성하십시오.
검소하고 필요한 것만 설치하십시오. 나를 위해 새 환경에 다음 패키지를 설치했습니다.
- 팬더
- 사이 킷 학습
- matplotlib
- notebook
- keras
And I have 84 packages in total.
if working in MS windows, you can use Anaconda navigator. click on the environment, in the drop-down box, it's "installed" by default. You can select "updatable" and start from there
To update all possible packages I used conda update --update-all
It works!
conda update --all
update all packages unprompted
conda update --all -y
I solved this problem with conda
and pip
.
Firstly, I run:
conda uninstall qt and conda uninstall matplotlib and conda uninstall PyQt5
After that, I opened the cmd and run this code that
pip uninstall qt , pip uninstall matplotlib , pip uninstall PyQt5
Lastly, You should install matplotlib
in pip by this code that pip install matplotlib
참고URL : https://stackoverflow.com/questions/38972052/anaconda-update-all-possible-packages
'Programing' 카테고리의 다른 글
utf8과 latin1의 차이점 (0) | 2020.07.20 |
---|---|
C #과 함께 OpenGl을 사용하십니까? (0) | 2020.07.20 |
Spring RestTemplate으로 양식 데이터를 POST하는 방법은 무엇입니까? (0) | 2020.07.19 |
lock과 Mutex의 차이점은 무엇입니까? (0) | 2020.07.19 |
유닉스에서 파일을 정렬하지 않고 파일에서 중복 줄을 삭제하는 방법은 무엇입니까? (0) | 2020.07.19 |