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

liftword3周前 (05-02)技术文章17

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

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

相关文章

主编推荐 | Gurobi 并行计算的设置和操作(附代码)

『运筹OR帷幄』原创作者:运筹OR帷幄编者按实际应用问题往往具有较高的计算复杂度,而优化算法难以在实际中落地的主要瓶颈就在于无法满足实际问题对计算时间的苛刻要求。然而近年来随着计算力的蓬勃发展,并行计...

升级到PyTorch 2.0的技巧总结(pytorch的最新版本)

来源:DeepHub IMBA本文约6400字,建议阅读12分钟在本文将演示 PyTorch 2.0新功能的使用,以及介绍在使用它时可能遇到的一些问题。PyTorch 2.0 发布也有一段时间了,大家...

提升 Python 代码水平的 5 个方法

这是原始函数:from datetime import datetime def is_legal_age(dob_str): """Checks if a pers...

Python pip升级及升级失败解决方案

本教程用于Python pip升级及失败解决方案首先查看脚本pip show pip我已经升级到了最新的版本安装其他模块过程中出现下面提示,便说明你需要升级pipYou are using pip v...

零基础AI开发系列教程:Dify升级指南

Dify近期发布很是频繁,基本两三天一个版本。值得肯定的是优化和改进了很多问题,但是官方的升级文档有点分散,也有点乱。我这里整理了一个升级文档供大家参考,如果还没有升级到新版本的小伙伴,可以按照我的文...

Python mysql批量更新数据(兼容动态数据库字段、表名)

一、应用场景上篇文章我们学会了在pymysql事务中批量插入数据的复用代码,既然有了批量插入,那批量更新和批量删除的操作也少不了。二、解决思路为了解决批量删除和批量更新的问题,提出如下思路:所有更新语...