pip Frozen向我显示了已安装的软件包,但如何检查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


用法

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

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

pip-upgrade


高级用法

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

pip-upgrade path/to/requirements.txt


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

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


如果需要升级到发行前/发行后版本,请添加--prerelease命令的参数。

完全公开:我写了是包装。

#3 楼

使用此pip分支:

https://github.com/dgladkov/pip

使用此命令可以完全满足您的要求:

$ pip list --outdated


评论


大声笑,谢谢dsa。之前我们都已经对fork进行了评论:)

– Xster
2011年4月26日在2:44

未维护的项目

–鲍里斯(Boris)
20 Jan 2 '20 at 15:52

未维护的9岁叉子。避免。

–smci
20年6月15日在21:10

#4 楼

可能在https://github.com/nvie/pip-tools上提供的pip-tools可能会帮助您实现所需的目标?

自述文件中的示例:

$ 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
...


评论


看来这个软件包现在已经移到github.com/jgonggrijp/pip-review

–小滴
17年1月15日在18:37

#5 楼

类似于pip list --outdated,但更新了requirements.txt文件:

pur -r requirements.txt

PyPi:https://pypi.python.org/pypi/pur

GitHub :https://github.com/alanhamlett/pip-update-requirements

#6 楼

简单的输出:
pip list --oudated


漂亮的输出:
pip install pip-check

pip-check