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)
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
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+
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.