pip install --upgrade xxx
命令,或者简写成pip install -U xxx
。pip list
命令可以查询已安装的库,结合 Linux 的一些命令(cut、sed、awk、grep……),可以直接在命令行中实现批量升级。awk
命令:python3 -m pip list | awk 'NR>=3{print}' | awk '{print $1}' | xargs python3 -m pip install -U
pip list --outdated
命令。默认情况下,查询出的格式跟pip list
相似,有效内容从第三行开始,大家可以试试。--format=freeze
格式,效果是这样的:cut
命令切割“=”号,然后取第一列:pip list --outdated --format=freeze | cut -d = -f 1 | xargs pip install -U
pip freeze
命令生成依赖文件,获取到已安装的库及其当前版本号:pip freeze > requirements.txt
pip install -r requirements.txt --upgrade
# 只在早期 pip 版本中用
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 版本。但不建议使用
from subprocess import call
from pip._internal.utils.misc import get_installed_distributions
for dist in get_installed_distributions():
call("pip install --upgrade " + dist.project_name, shell=True)
pkg_resources
是 setuptools
库的一部分,用于查找和管理 Python 库、版本依赖关系、相关联的资源文件等。可以这样写:# 需要安装 setuptools
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)
pip-review
库是一个专门用来方便升级 Python 库的工具,可以查看已过期的库、自动升级或者交互式选择性地升级:pip-upgrader
库,也是为了解决批量升级的问题,感兴趣的同学请自行搜索。