使用 Pip 同时升级所有 Python 包
Pip 是流行的 Python 包管理器,允许您管理和安装 Python 包项目。虽然 pip 提供了用于安装和更新单个包的各种命令,但没有内置标志可以一次更新所有包。但是,通过一些巧妙的命令,您可以实现此功能。
从 pip 版本 22.3 开始,引入了一项新功能,该功能在使用某些标志时禁用内置 pip 版本检查。此功能使您能够使用以下命令获取 JSON 格式的过时包列表:
pip --disable-pip-version-check list --outdated --format=json
要从 JSON 输出中提取包名称并使用 pip 升级它们,您可以使用以下 Python命令:
pip --disable-pip-version-check list --outdated --format=json | python -c "import json, sys; print('\n'.join([x['name'] for x in json.load(sys.stdin)]))" | xargs -n1 pip install -U
如果您使用的是旧版本的 pip(低于 22.3),您可以使用此替代方案命令:
pip list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip install -U
对于更旧版本的 pip,您可以使用以下命令:
pip freeze --local | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip install -U
注 1: grep 命令不包括可编辑的包定义(以 -e 开头),按照 @jawache 的建议。
注意2: xargs 的 -n1 标志可防止进程在更新一个包失败时停止,感谢 @andsens。
可以自由修改此命令以满足您的需要,但其主要目的是提供一种快速简单的方法来使用 pip 升级所有已安装的 Python 包。
以上是如何使用 Pip 同时升级所有 Python 包?的详细内容。更多信息请关注PHP中文网其他相关文章!