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 更新所有可升級的庫。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM