web-dev-qa-db-fra.com

Comment mettre à jour / mettre à jour un paquet en utilisant pip?

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)

93
borgr

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
154
borgr

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.

7
Aiden Woodruff
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 +

3
Fourier

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
2
as - if