나는 두 패키지를 상상 foo
하고 bar
곳 foo
의 종속성입니다 bar
. foo
이다는 이미 설치 지금 설치하려는 bar
함께 pip
. 업그레이드하지 않고 할 수 foo
있습니까? 특히 bar
설치된 버전에 만족하는 의 최신 버전을 설치하고 싶습니다 foo
.
에서 pip help install
--upgrade-strategy <upgrade_strategy>
Determines how dependency upgrading should be handled
[default: only-if-needed]. "eager" - dependencies are
upgraded regardless of whether the currently installed
version satisfies the requirements of the upgraded
package(s). "only-if-needed" - are upgraded only when
they do not satisfy the requirements of the upgraded
package(s).
내가 보는 한 이것은 "항상 업데이트"및 "필요한 경우에만 업데이트"의 경우에만 적용되지만 필요에 따라 "업데이트 안 함"은 다루지 않습니다.
pip install bar
(업그레이드 플래그가 전혀 없음) 원하는 작업을 수행해야합니다. pip는 버전이 호환되지 않는다고 명시 적으로 언급 foo
하지 않는 한 현재 설치된 것을 선택해야합니다 bar
. 새로운 (2020) 리졸버는 사용 가능한 버전을 하나씩 자동으로 시도하고 ( 역 추적 이라고 함 ) bar
설치하여 현재 설치된 foo
버전에서 작동 할 수 있는 버전을 찾을 수도 있습니다 . 2020 리졸버는 pip 20.2의 옵트 인 기능 이며을 통해 제공되며 20.3에서 기본값이 될 예정입니다 (2020 년 10 월 출시 예정).--use-feature=2020-resolver
그러나주의 할 점은 Python 패키징은 패키지를 다운로드하지 않고 버전 충돌을 발견하는 방법을 제공하지 않는다는 것입니다 (때로는 소스에서 빌드하는 경우도 있음). 1 패키지 bar
를 다운로드 (예 :) tensorflow
및 / 또는 빌드하는 데 비용이 많이 드는 경우 (예 : numpy
Alpine Linux와 같이 지원되지 않는 플랫폼에 설치 하는 경우) 문제가됩니다. 이 경우 유일한 선택은 버전을 수동으로 지정하는 것입니다. pip는 bar
다양한 버전을 다운로드하지 않고 명시 적으로 지정하지 않는 한 어떤 버전을 사용할 수 있는지 알 방법이 없기 때문입니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다