如何使用pip更新/升级包?

问题描述 投票:75回答:3

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

pip update
pip upgrade

我知道这是一个简单的问题,但它是必要的,因为它不是那么容易找到(pip documentation没有弹出,堆栈溢出的问题是相关的,但并不完全相关)

python pip
3个回答
137
投票

方式是

sudo pip install [package_name] --upgrade

或简而言之

sudo pip install [package_name] -U

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

如果你没有root密码(如果你不是管理员)你可能应该使用virtualenv然后你应该删除sudo

pip install [package_name] --upgrade

5
投票

如果您只想升级一个软件包,请参阅@ borgr的答案。我经常觉得有必要,或者至少是愉快的,一次升级我的所有包裹。目前,pip本身并不支持该操作,但是使用sh脚本它很简单。你使用pip listawk(或cuttail)和命令替换。我的正常单行是:

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

这将要求root密码。如果您无权访问,可能需要查看--userpipvirtualenv选项。


3
投票
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 +


1
投票

对于非特定包和更通用的解决方案,您可以查看[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
© www.soinside.com 2019 - 2024. All rights reserved.