关于python:如何使用pip更新/升级包?

 2019-05-17 

How to update/upgrade a package using pip?

使用pip更新包的方法是什么?那些不起作用

1
2
pip update
pip upgrade

我知道这是一个简单的问题,但由于它不容易找到(PIP文档不会弹出,堆栈溢出的问题是相关的,但并不完全是相关的)


方式是

1
sudo pip install [package_name] --upgrade

或者说简而言之

1
sudo pip install [package_name] -U

sudo将要求输入您的根密码以确认操作。

如果您没有根密码(如果您不是管理员),则应该使用virtualenv,然后删除sudo

1
pip install [package_name] --upgrade


如果您只想升级一个包,请参阅@borgr's answer。我经常觉得有必要,或者至少是很高兴,一次升级我所有的软件包。目前,pip本机不支持该操作,但是使用sh脚本就足够简单了。使用pip listawk(或cuttail,命令替换。我正常的一行是:

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

这将要求输入根密码。如果您无法访问,那么pip或VirtualEnv的--user选项可能是需要研究的内容。


1
2
3
4
5
6
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)

Save as xx.py
Then run Python3 xx.py
Environment: python3.5+ pip10.0+