web-dev-qa-db-fra.com

Comment mettre à niveau correctement tous les modules python vers les dernières versions stables avec pip ou pip3?

Considérons que nous avons installé les packages python-pip et python-pip3 pour obtenir pip et pip3 sur notre système.

Pour autant que je puisse comprendre pips sont des gestionnaires de paquets pour pypi.org . Je suppose qu'ils ont des fonctionnalités similaires à apt update, apt upgrade et apt dist-upgrade.

Comment mettre à niveau correctement tous les modules python vers les dernières versions stables avec pip ou pip3?

2
N0rbert

Cela pourrait fonctionner pour les anciennes versions de pip:

pip freeze --local | grep -v '^\-e' | cut -d = -f 1  | xargs -n1 pip install -U
1
Christopher M

J'ai testé cela avec succès sur pip2 et pip3 bien que je ne sois pas sûr qu'il existe un meilleur moyen de le faire.

pip freeze | sed 's/==.*//' | xargs pip install -U

Vous voudrez peut-être ajouter --user après pip freeze et pip install si vous souhaitez uniquement mettre à niveau les packages installés sur votre compte utilisateur à la place du système. Si vous mettez à niveau des packages système Python, vous devez exécuter le pip install avec Sudo, sinon vous obtiendrez probablement une erreur d'autorisation refusée.

1
Jamie Scott

Avec pip, il n’existe pas de concept de "nouvelle stabilité" comme dans Debian/Ubuntu.

Les derniers paquets stables dans Debian/Ubuntu ont été testés pour fonctionner correctement avec tous les autres paquets de la distribution.

Avec pip, vous pouvez mettre à niveau tous les modules python, mais vous devrez mettre à niveau tous les modules vers la dernière version disponible dans le référentiel. Il vous incombera de vérifier que tout continue à fonctionner. Il peut y avoir des problèmes dus à de nouveaux bogues ou à des modifications incompatibles.

Pour cette raison, ne mettez jamais à niveau le système d’exploitation fourni avec python modules avec pip (option: --system), sauf si vous êtes prêt à réparer le bris éventuel.

Il peut être judicieux de mettre à niveau tous les modules installés dans votre environnement utilisateur, ou mieux dans un environnement virtuel. La commande devrait être:

pip freeze | awk '{print $1}' | xargs pip install -U

Pour les utilisateurs de différentes distributions et d'autres cas, vérifiez:

pip help install

puisque le comportement par défaut (pas d’option --user ou --system) change de dérivé de Debian au python standard.

1
Telegrapher