pip 20.3 부터 새로운 dependency resolver (버전 의존성 해결자)가 도입되며 기본으로 쓰입니다.
(pyfound.blogspot.com)1. 의존성을 해결할 때의 모순이 많이 줄었습니다.
과거(pip 20.0)에는 pip install "six<1.12" "virtualenv==20.0.2" 의 결과로 six==1.11가 설치되었는데, virtualenv==20.0.2는 six>=1.12.0,<2를 필요로 했었기에 이는 잘못된 동작입니다.
지금(20.3)부터는 아무것도 설치하지 않고 설치가 거부됩니다.
2. 엄격(깐깐)해집니다.
- 하위 의존성이 호환되지 않는 두 패키지를 한번에 설치하려할 경우, 설치가 거부됩니다.
3. 이러한 결과로, 아래 두 명령이 같은 패키지를 설치하지 않을 수 있습니다.
- pip install x && pip install y
- pip install x y
4. Constraints(lockfile), editable, == match require hash-checking 등 여러가지 변경사항도 생겼습니다.
새 dependency resolver는 --use-deprecated=legacy-resolver 로 끌 수 있으며, 이는 2021년 1월까지 (pip 21.0 release candidate) 지원됩니다.
기존에 있던 미봉책(workaround)들이 작동하지 않을 수 있습니다. 본문에 여러가지 해결방안이 나와있으니 참고해보세요.