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

liftword1周前 (05-02)技术文章6

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

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

相关文章

Python小技巧:如何批量更新已安装的库?

众所周知,升级某个库(假设为 xxx),可以用pip install --upgrade xxx 命令,或者简写成pip install -U xxx 。如果有多个库,可以依次写在 xxx 后面,以空...

主编推荐 | 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...