超全攻略:用 pip 一键升级所有 Python 包
宝子们,你是否在为一个个升级 Python 包而烦恼?今天就给大家分享用 pip 升级所有 Python 包的多种方法,赶紧码住!
注意事项
升级依赖包可能会让你的应用程序出问题,所以在操作之前,最好用 pip freeze 列出所有已安装包的精确版本,并保存一份副本,以防万一。
不同 pip 版本的升级方法
pip 22.3 及以上
可以使用 Python 解析 JSON 输出:
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 20.0 - 22.3
pip list --format freeze --outdated | sed 's/=.*//g' | xargs -n1 pip install -U
旧版本 pip
pip list --format freeze --outdated | sed 's/(.*//g' | xargs -n1 pip install -U
这里的 grep 是为了跳过可编辑(-e)的包定义,xargs 的 -n1 标志能防止一个包升级失败时中断整个过程。
其他实用方法
使用 pip-review
先安装:
pip install pip-review
交互模式升级:
pip-review --local --interactive
自动升级:
pip-review --local --auto
Python 代码升级
对于 pip < 10.0.1:
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 >= 10.0.1:
import pkg_resources
from subprocess import call
packages = [dist.project_name for dist in pkg_resources.working_set]
call("pip install --upgrade " + ' '.join(packages), shell=True)
Windows 系统升级方法
for /F "delims===" %i in ('pip freeze') do pip install --upgrade %i
需要在 cmd.exe 中运行。
宝子们可以根据自己的需求和环境选择合适的方法,快去试试吧!