como actualizar uma embalagem com o pip?
3 answers
O caminho é
sudo pip install [package_name] --upgrade
Ou em resumo
sudo pip install [package_name] -U
sudo
irá pedir para introduzir a sua senha de root para confirmar a acção.
Se não tiver uma senha de root (se não for o administrador), provavelmente deverá trabalhar com virtualenv e depois deverá largar a 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)
Salvar como xx.py
em Seguida, execute o Python3 xx.py
Ambiente: python3.5+ pip10.0+
Se só quiser actualizar um pacote, consulte a resposta do @borgr. Muitas vezes acho necessário, ou pelo menos agradável, atualizar todos os meus pacotes de uma vez. Atualmente, pip não suporta nativamente essa ação, mas com Sh scripting é simples o suficiente. Você usa pip list
, awk
(ou cut
e tail
), e substituição de comandos. A minha linha normal é:
for i in $(pip list -o | awk 'NR > 2 {print $1}'); do sudo pip install -U $i; done
Isto vai pedir a senha de root. Se você não tem acesso a isso, o --user
opção de pip
ou virtualenv pode ser algo para investigar.