Passage en prod de pip 20.3 !

Attention, aujourd’hui c’est la sortie de pip 20.3, le fameux, avec le nouveau résolveur de dépendances plus strict, attention aux surprises !

Les autres changements :

  • Abandon de Python 3.5 (considérée obsolète pour pip 20.3, compatibilité supprimée dans pip 21.0)
  • pip freeze n’exclu plus pip, setuptools, distribute, et wheel (mais on peut toujours utiliser --exclude pour les exclure).
  • Implémentation de la PEP 600 : Les prochains tags manylinux.
  • Ajouts de tags pour MacOS Big Sur.

source :

2 J'aime

Citation
This also means that, when you run a pip install command, pip only considers the packages you are installing in that command, and may break already-installed packages. It will not guarantee that your environment will be consistent all the time. If you pip install x and then pip install y, it’s possible that the version of y you get will be different than it would be if you had run pip install x y in a single command.

J’avoue que celle là, je m’y serais pas vraiment attendu.
Sauf cas particulier de changement de version entre temps (peut-être).

J’imagine que ça survient dans la gestion des sous-dépendances, imaginons « x dépend de a < 2 et y dépend de a > 2 » :

  • pip install x
    • ça installe x (la dernière version)
    • ça installe sa dépendance a 1.9
  • pip install y
    • ça installe y (la dernière version)
    • ça installe sa dépendance a 2.0

Et boom x ne fonctionne plus (ou x a menti et est compatible avec a 2.0). Ce n’est pas si grave, de toute façons on ne peut pas avoir x et y, ça va péter d’une manière où d’une autre.

pip install x y aurait expliqué le problème et refusé l’installation.

Vive pip-compile !

Yep, on est d’accord !

J’aurais juste apprécié qu’en faisant un pip install y, pip vérifie rapidement les paquets installés et prévienne “Attention ! x va plus fonctionner !”.

Surtout que sans message, le fait que x fonctionne plus, c’est un peu “caché”.
Tu recouvriras le problème dans tes tests ou en lançant ton script avec peut être un message d’erreur obscure.

C’est pas bien grave c’est sûr, mais le débutant il risque de rien comprendre haha !

+1 !

Tu arrive un poil trop tard :

j’ignore si les résultats ont été publiés, je n’ai pas cherché.

Pourquoi ne pas avoir copié la dernière phrase du paragraphe ?

We are considering changing this behavior (per #7744) and would like your thoughts on what pip’s behavior should be; please answer our survey on upgrades that create conflicts.

2 J'aime