用pip升级所有软件包
是否可以一次性用pip
升级所有Python包?
请注意,在官方问题跟踪器上有这项功能请求。
目前还没有内置标志,但可以使用
pip freeze --local | grep -v '^-e' | cut -d = -f 1 | xargs -n1 pip install -U
注意:这里有无限的潜在变化。 我试图保持这个答案简短,但请建议在评论中的变化!
相关修改:
sed
或awk
或perl
或...替换grep
+ cut
添加一个grep
来跳过“-e”包定义。 较新版本的pip
允许您列出过期的软件包:
pip list --outdated --format=freeze
在xargs
添加-n1
,防止在更新一个包失败时停止所有操作(谢谢@andsens)
你可以使用下面的Python代码。 与pip freeze
不同,这不会打印警告和FIXME错误。
import pip
from subprocess import call
packages = [dist.project_name for dist in pip.get_installed_distributions()]
call("pip install --upgrade " + ' '.join(packages), shell=True)
升级所有本地软件包; 你可以使用pip-review
:
$ pip install pip-review
$ pip-review --local --interactive
pip-review
是pip-tools
一个分支。 请参阅@knedlsepp提及的pip-tools
问题。 pip-review
软件包可以运行,但pip-tools
软件包不再适用。
pip-review
从0.5版本开始在Windows上运行。
上一篇: Upgrading all packages with pip
下一篇: How can I develop for iPhone using a Windows development machine?