source

가능한 모든 패키지를 업데이트하시겠습니까?

gigabyte 2022. 9. 8. 22:20
반응형

가능한 모든 패키지를 업데이트하시겠습니까?

는 ★★★★★★★★★★★★★★★★★★★★★를 시험해 보았다.conda search --outdated0.0.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

사실1 그게 최선이에요.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를 명시적으로 호출해야만 가능한 패키지(보통 원하지 않음!)의 호환성을 해제합니다.하지만 이는 문제를 해결하기 위한 것일 뿐이지, 일반 사용자의 경우는 절대 아닙니다!


1 일반적으로 업데이트하지 않는 설치 패키지를 실제로 업데이트하려는 경우.기본 환경에서 명령을 실행하면 이 패키지가 업데이트되지만 일반적으로 가상 환경에서 작업해야 합니다.conda create -n myenv 다음에 또 한 번.conda activate myenvconda update --all이러한 환경에서 패키지를 업데이트합니다.그러나 기본 환경도 환경이기 때문에 두 경우 모두 동일한 방식으로 답변이 적용됩니다.

질문에 더 정확하게 대답하려면:

conda(Anaconda의 경우 miniconda의 경우 conda)는 패키지의 특정 버전 내에서만 -> major 및 minor를 업데이트합니다.그게 바로 패러다임입니다.

이 문서에는 "주의: Conda는 시리즈 중 가장 높은 버전으로 업데이트되므로 Python 2.7은 2.x 시리즈에서 가장 높은 버전으로 업데이트되고 3.6은 3.x 시리즈에서 가장 높은 버전으로 업데이트됩니다."라는 문서가 있습니다.

Wang이 재현 가능한 예를 제시하지 않으면 도움이 되지 않습니다.예를 들어, 실제로 가상 환경을 업데이트하고 싶은지, Wang이 원하는 것을 얻을 수 있는지 등입니다.

conda update -n ENVIRONMENT --all

* "update --all"을 실행하기 전에 문서를 읽어주세요!이로 인해 모든 패키지가 업데이트되는 것은 아닙니다.conda는 사용자 환경의 모든 패키지 간의 종속성 관계를 해결하려고 하므로 경고 없이 다운그레이드된 패키지가 발생할 수 있습니다.


거의 모든 것을 업데이트하려는 경우 핀 파일을 만들 수 있습니다.

echo "conda ==4.0.0" >> ~/miniconda3/envs/py35/conda-meta/pinned
echo "numpy 1.7.*" >> ~/miniconda3/envs/py35/conda-meta/pinned

를 참조해 주세요.conda 문제가 해결되지 않음

나중에 업데이트를 위해 환경 내의 파일을 무시하는 경우 다음을 수행할 수 있습니다.

conda update --all --no-pin

update --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

conda 설정


업데이트:

현재 콘다 pkg 매니저로 mamba(또는 micromamba)를 사용하고 있습니다.


업데이트:

잘에 저는 으로 콘다의 합니다.nix-shell (오류)lorri 및 )의 개요poetry[우수한 pip/conda .-] (시2nix)

에 '하다'를 사용할 수도 .nix및 (필요한 것은 요건 파일뿐입니다.환경을 가장 잘 해결하고 구축합니다.


Linux/macOS에서는 다음과 같은 nix를 사용할 수 있습니다.

nix-env -iA nixpkgs.python37

예를 들어 Python 3.7이 있는 환경에 들어갑니다(버전을 변경할 수 있습니다).

또는 매우 좋은 Python(고급) 환경으로서 mach-nix(nix 포함)를 다음과 같이 사용할 수 있습니다.

mach-nix env ./env -r requirements.txt 

(콘다(단, 현재 베타판)까지 지원)

또는 API를 통해

nix-shell -p nixFlakes --run "nix run github:davhau/mach-nix#with.ipython.pandas.seaborn.bokeh.scikit-learn "

마지막으로 의존관계로 인해 호환되지 않는 패키지로 작업해야 하는 경우 NixOS/nix-pkgs 등의 기술을 사용할 수 있습니다.

패키지의 의존관계 그래프를 상상해 보십시오.패키지 수가 많아지면 패키지 업그레이드/추가 시 충돌이 발생할 가능성이 훨씬 높아집니다.이를 피하려면 아나콘다에 새로운 환경을 조성하기만 하면 됩니다.

절약하고 필요한 것만 설치하세요.저는 새로운 환경에 다음 패키지를 설치했습니다.

  • 팬더
  • 촌스럽게 배우다
  • matplotlib
  • 노트북
  • 케라스

그리고 저는 총 84개의 패키지를 가지고 있습니다.

Mayou36에 동의합니다.

예를 들어 일부 패키지에 대해서는 conda를 사용하고 다른 패키지에 대해서는 pip을 사용하여 새로운 패키지를 기본 환경에 설치하는 실수를 했습니다.

왜 안 좋은 거죠?

1. pyp를 통해 PyPI에서 >를 설치한 패키지 업데이트 또는 python setup.py install을 사용하여 설치된 패키지 업데이트에는 도움이 되지 않습니다.conda 목록에서는 환경에 있는 pip 기반 Python 패키지에 대한 힌트를 얻을 수 있지만 업데이트에는 특별한 도움이 되지 않습니다.

그리고 모든 프로젝트를 한 환경에서 수행할 수 있었습니다.그리고 update all을 사용했는데, 모두 업데이트 되지 않았습니다.

그래서, 각 프로젝트를 위해 새로운 환경을 만드는 것이 가장 좋습니다. 왜일까요?

2. Conda 환경은 사용자가 설치한 Conda 패키지의 특정 컬렉션을 포함하는 디렉토리입니다.예를 들어 NumPy 1.18과 그 종속성이 필요한 연구 프로젝트를 수행하고 있는 반면, 완료된 프로젝트와 관련된 다른 환경에서는 NumPy 1.12가 있을 수 있습니다(프로젝트 완료 시 버전 1.12가 NumPy의 최신 버전이었기 때문일 수 있습니다).한 환경을 변경해도 다른 환경은 영향을 받지 않습니다.환경을 쉽게 활성화 또는 비활성화할 수 있습니다. 이렇게 하면 환경을 전환할 수 있습니다.

정리하자면:

  1. 프로젝트별로 새로운 환경 구축

  2. 콘다와 pip의 차이점에 유의하십시오.

3. 실제로 필요한 패키지만 포함시키고 필요한 경우에만 적절하게 업데이트하십시오.

MS 창에서 작업하는 경우 Anaconda 탐색기를 사용할 수 있습니다.환경을 클릭하면 드롭다운 상자에서 기본적으로 "설치"되어 있습니다."업데이트 가능"을 선택하고 여기서부터 시작할 수 있습니다.

사용 가능한 모든 패키지를 업데이트하려면conda update --update-all

됐다!

나는 이 문제를 해결했다.conda그리고.pip.

먼저, 다음을 실행합니다.

conda uninstall qt and conda uninstall matplotlib and conda uninstall PyQt5

그 후 cmd를 열고 이 코드를 실행하면

pip uninstall qt , pip uninstall matplotlib , pip uninstall PyQt5

마지막으로 설치하셔야 합니다.matplotlib이 코드로 말하면pip install matplotlib

언급URL : https://stackoverflow.com/questions/38972052/anaconda-update-all-possible-packages

반응형