Python 3.8 使用 pip 批量更新所有过期库,以及一些 pip 问题方案

首先需要在系统上安装好 Python,然后执行 cmd 进入 DOS 环境,再次输入 python 进入 python 开发环境。

Python 3.8 之前的版本

在 Python 3.8 以下的版本,可以通过输入执行以下命令来批量更新所有过期的 packages 库文件:

import pip
from subprocess import call
for dist in pip.get_installed_distributions():
    call("pip install -U " + dist.project_name, shell=True)

但是在 Python 3.8 里面执行上述语句,则会提示以下没有该属性的错误:

AttributeError: module 'pip' has no attribute 'get_installed_distributions'


Python 3.8 的版本

在参考了 Stack Overflow 上的相关资料 后,将批量更新的代码改成下面的代码,就可以在 Python 3.8 的环境下批量更新所有过期的 packages 库文件了。

Python 3.8 更新所有过期的 packages 代码:

import pip
from subprocess import call
from importlib import metadata as importlib_metadata
# 上一条语句在低版本中可能要改成 import importlib_metadata
for dist in importlib_metadata.distributions():
    print("Updating for:", dist.metadata["Name"])  # 看进度用,非必需
    call("pip install -U " + dist.metadata["Name"], shell=True)

一些重要的 Tips

其他一些重要的 pip 命令(注:部分 package 名称仅作示例):

pip install pigar  # 安装 pigar 库

pip install pigar -i https://pypi.douban.com/simple
# 指定从国内豆瓣镜像站点安装 pigar 库
# 可在访问 pypi 不稳定和安装 package 失败的情况下使用

pip config set global.index-url https://pypi.douban.com/simple
# 设置全局安装 package 的镜像站点,以后就不用再每次安装时指定来源了

pip install -U requests  # 升级 requests 库
pip install --upgrade requests  # 等同于上一条语句,升级用

pip list --outdated  # 列出所有已过期的 package

python -m ensurepip
python -m pip install -U pip
# 使用 `pip install -U pip` 升级 pip 自身失败后,无法启动 pip 的修复
easy_install pip  # 当然,也可以试试这个修复安装 pip

pigar  # 在项目文件夹下,利用 pigar 库生成项目的依赖文件 requirements.txt

pip install -r requirements.txt
# 利用 requirements.txt 安装项目的依赖库,调试起来省心省力

最后,如果是使用 conda 管理库文件,可以使用 conda update --all 更新所有可升级的库。

posted @ 2020-09-08 22:33  MoonYear530  阅读(1329)  评论(0编辑  收藏  举报