Ab pip 20.3 wird der neue Dependency Resolver standardmäßig eingeführt und verwendet.
(pyfound.blogspot.com)- Beim Auflösen von Abhängigkeiten gibt es deutlich weniger Widersprüche.
Früher (pip 20.0) führte pip install "six<1.12" "virtualenv==20.0.2" dazu, dass six==1.11 installiert wurde. Da virtualenv==20.0.2 jedoch six>=1.12.0,<2 benötigte, war dieses Verhalten falsch.
Ab jetzt (20.3) wird stattdessen nichts installiert und die Installation wird verweigert.
- Es wird strenger.
- Wenn versucht wird, zwei Pakete gleichzeitig zu installieren, deren transitive Abhängigkeiten nicht kompatibel sind, wird die Installation verweigert.
- Daher müssen die folgenden beiden Befehle nicht unbedingt dieselben Pakete installieren.
-
pip install x && pip install y -
pip install x y
- Es gibt außerdem verschiedene Änderungen bei Constraints (Lockfiles), Editable,
==-Abgleich und verpflichtender Hash-Prüfung.
Der neue Dependency Resolver kann mit --use-deprecated=legacy-resolver deaktiviert werden; dies wird bis Januar 2021 (pip 21.0 release candidate) unterstützt.
Bisher verwendete Workarounds funktionieren möglicherweise nicht mehr. Im Haupttext werden verschiedene Lösungsansätze vorgestellt, bitte dort nachsehen.
Noch keine Kommentare.