Quel est le moyen de mettre à jour un paquet en utilisant pip? ceux qui ne fonctionnent pas:
pip update
pip upgrade
Je sais que c’est une question simple, mais elle est nécessaire car il n’est pas si facile à trouver (pip documentation ne s’affiche pas et d’autres questions relatives au débordement de pile sont pertinentes mais ne traitent pas exactement de cela)
Le chemin est
Sudo pip install [package_name] --upgrade
ou en bref
Sudo pip install [package_name] -U
Sudo
vous demandera d'entrer votre mot de passe root pour confirmer l'action.
Si vous n'avez pas de mot de passe root (si vous n'êtes pas l'administrateur), vous devriez probablement travailler avec virtualenv , puis vous devriez supprimer le Sudo
:
pip install [package_name] --upgrade
tl; dr script pour mettre à jour tous les packages installés
Si vous souhaitez uniquement mettre à niveau un paquet, reportez-vous à @ borgr's answer . Je trouve souvent nécessaire, ou au moins agréable, de mettre à jour tous mes paquets en même temps. Actuellement, pip ne prend pas nativement en charge cette action, mais avec sh, cela est assez simple. Vous utilisez _pip list
_, awk
(ou cut
et tail
), ainsi que le remplacement de commande. Mon one-line régulier est:
_for i in $(pip list -o | awk 'NR > 2 {print $1}'); do Sudo pip install -U $i; done
_
Cela vous demandera le mot de passe root. Si vous n'y avez pas accès, l'option --user
de pip
ou virtualenv peut être un élément à étudier.
import subprocess as sbp
import pip
pkgs = eval(str(sbp.run("pip3 list -o --format=json", Shell=True,
stdout=sbp.PIPE).stdout, encoding='utf-8'))
for pkg in pkgs:
sbp.run("pip3 install --upgrade " + pkg['name'], Shell=True)
Enregistrer sous xx.py
Puis lancez Python3 xx.py
Environnement: python3.5 + pip10.0 +
Pour un package non spécifique et une solution plus générale, vous pouvez extraire [pip-review][1]
. C'est un outil général qui vérifie quels paquets pourraient\devraient être mis à jour.
$ pip-review --interactive
requests==0.14.0 is available (you have 0.13.2)
Upgrade now? [Y]es, [N]o, [A]ll, [Q]uit y