使用pip更新包的方法是什么?那些不起作用
pip update
pip upgrade
我知道这是一个简单的问题,但它是必要的,因为它不是那么容易找到(pip documentation没有弹出,堆栈溢出的问题是相关的,但并不完全相关)
方式是
sudo pip install [package_name] --upgrade
或简而言之
sudo pip install [package_name] -U
sudo
将要求输入您的root密码以确认操作。
如果你没有root密码(如果你不是管理员)你可能应该使用virtualenv然后你应该删除sudo
:
pip install [package_name] --upgrade
如果您只想升级一个软件包,请参阅@ borgr的答案。我经常觉得有必要,或者至少是愉快的,一次升级我的所有包裹。目前,pip本身并不支持该操作,但是使用sh脚本它很简单。你使用pip list
,awk
(或cut
和tail
)和命令替换。我的正常单行是:
for i in $(pip list -o | awk 'NR > 2 {print $1}'); do sudo pip install -U $i; done
这将要求root密码。如果您无权访问,可能需要查看--user
或pip
的virtualenv选项。
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)
另存为xx.py 然后运行Python3 xx.py 环境:python3.5 + pip10.0 +
对于非特定包和更通用的解决方案,您可以查看[pip-review][1]
。它是一个通用工具,可以检查哪些包可以更新。
$ 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