comment mettre à jourMettre à niveau un paquet en utilisant pip?

Quel est le moyen de mettre à jour un paquet en utilisant pip? ceux-ci ne fonctionnent pas

pip update
pip upgrade

Je sais que c'est une question simple mais comme ce n'est pas si facile à trouver (PIP documentation ne s'affiche pas et les questions de stack overflow sont pertinentes mais ne sont pas exactement à ce sujet)

25
demandé sur borgr 2017-11-02 12:03:54

3 réponses

Le chemin est

sudo pip install [package_name] --upgrade

Ou en bref

sudo pip install [package_name] -U

sudo 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 devez supprimer l' sudo:

pip install [package_name] --upgrade
40
répondu borgr 2018-06-30 05:01:38
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
Ensuite, exécutez Python3 xx.py
Environnement: python3.5+ pip10.0+

2
répondu Fourier 2018-05-07 05:31:54

Si vous ne souhaitez mettre à jour qu'un seul paquet, reportez-vous à la réponse de @borgr. Je trouve souvent nécessaire, ou du moins agréable, de mettre à jour tous mes paquets à la fois. Actuellement, pip ne supporte pas nativement cette action, mais avec les scripts sh, c'est assez simple. Vous utilisez pip list, awk (ou cut et tail), et de la substitution de commande. Mon one-liner normal est:

for i in $(pip list -o | awk 'NR > 2 {print $1}'); do sudo pip install -U $i; done

Cela demandera le mot de passe root. Si vous n'avez pas accès à cela, l'--user option de pip ou virtualenv peut être quelque chose à voir.

1
répondu Aiden Woodruff 2018-09-23 18:33:55