是否可以使用pip一次性升级所有Python包?

注意:官方问题跟踪器上对此有一个功能请求。


当前回答

你可以试试这个:

for i in ` pip list | awk -F ' ' '{print $1}'`; do pip install --upgrade $i; done

其他回答

我最近一直在用pur。这很简单,切中要害。它会更新您的requirements.txt文件以反映升级,然后您可以像往常一样使用requirements.txt文件进行升级。

$ pip install pur
...
Successfully installed pur-4.0.1

$ pur
Updated boto3: 1.4.2 -> 1.4.4
Updated Django: 1.10.4 -> 1.10.5
Updated django-bootstrap3: 7.1.0 -> 8.1.0
All requirements up-to-date.

$ pip install --upgrade -r requirements.txt
Successfully installed Django-1.10.5 ...

Windows PowerShell解决方案

pip freeze | %{$_.split('==')[0]} | %{pip install --upgrade $_}

要升级所有本地软件包,您可以安装pip review:

$ pip install pip-review

之后,您可以交互升级软件包:

$ pip-review --local --interactive

或自动:

$ pip-review --local --auto

pipreview是pip工具的一个分支。参见@knedlsepp提到的pip工具问题。pipreview包有效,但piptools包不再有效。pipreview正在寻找新的维护者。

pip review从0.5版开始在Windows上运行。

查看所有过时的软件包

 pip list --outdated --format=columns

安装

 sudo pip install pipdate

然后键入

 sudo -H pipdate
python -c 'import pip; [pip.main(["install", "--upgrade", d.project_name]) for d in pip.get_installed_distributions()]'

一行!