查找过时/可更新的 pip 包

查找过时/可更新的 pip 包

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

答案1

从 1.3 版开始,pip 具有一个新命令:

$ pip list --outdated
requests (Current: 1.1.0 Latest: 1.2.0)

这个帖子了解更多信息。

答案2

事实是,我从不升级所有软件包我只升级我需要的,因为项目可能会失败

由于没有简单的方法逐个升级软件包并更新 requirements.txt 文件,因此我编写了pip-upgrader哪个requirements.txt还会更新文件中的版本对于所选的包(或者所有包)。

安装

pip install pip-upgrader

用法

激活您的虚拟环境(很重要,因为它还将在当前虚拟环境中安装升级包的新版本)。

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

pip-upgrade

高级用法

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

pip-upgrade path/to/requirements.txt

如果您已经知道要升级哪个包,只需将它们作为参数发送即可:

pip-upgrade -p django -p celery -p dateutil

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

全面披露:这个包是我写的。

答案3

简单输出:

pip list --outdated

在此处输入图片描述

另请参阅文档pip list --outdated选项

漂亮的输出:

pip install pip-check
pip-check

在此处输入图片描述

答案4

也许可以使用 pip-tools,网址为https://github.com/nvie/pip-tools,可能会帮助你实现你的愿望吗?

README 中的一个示例:

$ pip-review --interactive
requests==0.14.0 available (you have 0.13.2)
Upgrade now? [Y]es, [N]o, [A]ll, [Q]uit y
...
redis==2.6.2 available (you have 2.4.9)
Upgrade now? [Y]es, [N]o, [A]ll, [Q]uit n
rq==0.3.2 available (you have 0.3.0)
Upgrade now? [Y]es, [N]o, [A]ll, [Q]uit y
...

相关内容