查找过时/可更新的 pip 包

Xst*_*ter 147 package-management python pip

pip freeze 向我显示了已安装的软件包,但是如何检查 pypi 哪些已过时?

Dan*_*gen 217

从 1.3 版开始,pip 提供了一个新命令:

$ pip list --outdated
requests (Current: 1.1.0 Latest: 1.2.0)
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅此帖子


Pik*_*er2 9

简单输出:

pip list --outdated
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

另请参阅有关pip list --outdated选项的文档。

漂亮的输出:

pip install pip-check
pip-check
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述


小智 8

事情是,我从不升级所有包。我只升级我需要的东西,因为项目可能会中断

因为没有简单的方法来逐个包升级和更新 requirements.txt 文件,所以我编写了pip-upgrader,它还会更新requirements.txt文件中所选包(或所有包)的版本。

安装

pip install pip-upgrader
Run Code Online (Sandbox Code Playgroud)

用法

激活您的 virtualenv(很重要,因为它还会在当前 virtualenv 中安装新版本的升级包)。

cd 进入你的项目目录,然后运行:

pip-upgrade
Run Code Online (Sandbox Code Playgroud)

高级用法

如果需求放置在非标准位置,请将它们作为参数发送:

pip-upgrade path/to/requirements.txt
Run Code Online (Sandbox Code Playgroud)

如果您已经知道要升级的软件包,只需将它们作为参数发送:

pip-upgrade -p django -p celery -p dateutil
Run Code Online (Sandbox Code Playgroud)

如果您需要升级到预发布/发布后版本,--prerelease请在命令中添加参数。

完全披露:我写了这个包。


小智 5

使用这个 pip 叉:

https://github.com/dgladkov/pip

使用此命令完全符合您的要求:

$ pip list --outdated
Run Code Online (Sandbox Code Playgroud)

  • 无人维护的 9 岁前叉。避免。 (2认同)