程序员文章、书籍推荐和程序员创业信息与资源分享平台

网站首页 > 技术文章 正文

超全攻略:用 pip 一键升级所有 Python 包

hfteth 2025-05-02 10:34:03 技术文章 7 ℃

宝子们,你是否在为一个个升级 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 中运行。

宝子们可以根据自己的需求和环境选择合适的方法,快去试试吧!

最近发表
标签列表