Python 安裝第三方庫報錯問題解決


原文:https://lwebapp.com/zh/post/pip-install-error-guide

問題

我們在使用 Python 開發的時候,通常會用到一些好用的第三方庫,推薦用 pip 來安裝,比如安裝 pandas

python -m pip install pandas

一般情況下都沒有什么問題,但是有些小伙伴會碰到 pip 安裝第三方庫報錯、pip install 卡住不動等安裝失敗的情況。

比如以下是 pip 安裝第三方庫報錯的代碼

Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None))...

小編在這里就總結下 Python 安裝第三方庫失敗的解決方案有哪些。

解決

方案一

Python 環境因素報錯,檢查你的電腦下的 Python 和 pip 是否是正常安裝好的

# 打印當前Python版本
python --version

運行以上命令如果正常打印出了 Python 版本信息,表明是正常的。報錯的話,可能是在 Windows 下安裝 Python 的時候環境變量沒有配置,可以配置下 Python 環境變量,或者直接把 Python 重新安裝到 C 盤,這樣就不會有環境變量的問題。

# 打印pip版本
python -m pip --version

運行以上命令如果正常打印出了 pip 版本信息,表明是正常的。報錯的話,可以用這個命令安裝升級下

python -m ensurepip --upgrade

如果還不能運行 pip,也可以手動安裝 pip

  1. 打開 https://bootstrap.pypa.io/get-pip.py
  2. 右擊頁面–另存為–保存到任何地方
  3. 在 get-pip.py 文件所在目錄的命令行執行 python get-pip.py就能成功安裝 pip

手動安裝 pip 還有個好處,可以直接使用全局 pip 來安裝依賴包,比如

pip install pandas

方案二

pip 雖然正常安裝了,但有時候會提示你的 pip 版本過低

WARNING: You are using pip version 22.0.3; however, version 22.0.4 is available.
You should consider upgrading via the '/usr/local/bin/python -m pip install --upgrade pip' command.

運行以下命令升級 pip

python -m pip install --upgrade pip

方案三

第三方包名稱或者版本號輸入錯誤,比如我在命令行終端安裝一個叫 padas 的包

python -m pip install padas

會出現以下報錯

ERROR: Could not find a version that satisfies the requirement padas (from versions: none)
ERROR: No matching distribution found for padas

這個錯誤提示我輸入了 padas,提示找不到這個包和它的版本號。這時需要檢查包名稱是否輸入正確,正確的應該是 pandas。(當然文章發布之后,可能有開發者朋友發布了這個包,這里僅僅作為演示)

還有版本號也可能不存在的問題,比如我安裝一個高版本的 pandas

python -m pip install pandas==6.5

會出現以下報錯

ERROR: Could not find a version that satisfies the requirement pandas==6.5 (from versions: 0.1, 0.2, 0.3.0, 0.4.0, 0.4.1, 0.4.2, 0.4.3, 0.5.0, 0.6.0, 0.6.1, 0.7.0, 0.7.1, 0.7.2, 0.7.3, 0.8.0, 0.8.1, 0.9.0, 0.9.1, 0.10.0, 0.10.1, 0.11.0, 0.12.0, 0.13.0, 0.13.1, 0.14.0, 0.14.1, 0.15.0, 0.15.1, 0.15.2, 0.16.0, 0.16.1, 0.16.2, 0.17.0, 0.17.1, 0.18.0, 0.18.1, 0.19.0, 0.19.1, 0.19.2, 0.20.0, 0.20.1, 0.20.2, 0.20.3, 0.21.0, 0.21.1, 0.22.0, 0.23.0, 0.23.1, 0.23.2, 0.23.3, 0.23.4, 0.24.0, 0.24.1, 0.24.2, 0.25.0, 0.25.1, 0.25.2, 0.25.3, 1.0.0, 1.0.1, 1.0.2, 1.0.3, 1.0.4, 1.0.5, 1.1.0, 1.1.1, 1.1.2, 1.1.3, 1.1.4, 1.1.5, 1.2.0, 1.2.1, 1.2.2, 1.2.3, 1.2.4, 1.2.5, 1.3.0, 1.3.1, 1.3.2, 1.3.3, 1.3.4, 1.3.5, 1.4.0rc0, 1.4.0, 1.4.1)
ERROR: No matching distribution found for pandas==6.5

很明顯找不到這個版本號,而且把所有可以安裝的版本號都告訴你了,我們只需要選擇一個我們需要的版本號就可以,或者不指定版本號默認安裝最新版本。

方案四

每個地方的網絡質量、通信速度都不一樣,pip 安裝依賴包也會遇到網絡超時問題,比如以下報錯

raise ReadTimeoutError(self._pool, None, 'Read timed out.')
pip._vendor.requests.packages.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='pypi.org', port=443): Read timed out.

表明是網絡超時了,提示連接到 pypi.org 出了問題,這個就是托管 python 依賴包的網站,所有的 pip 包都發布在上面。

我們可以設置加長超時時間,因為大多數地方的網絡並不是完全連接不上,只是速度有點感人。這里將默認的超時時間 --default-timeout 設置為 200s

python -m pip --default-timeout=200 install pandas

設置多一點的超時時間,去喝杯茶慢慢等一等,就可能下載好了。

方案五

如果喝完茶后還沒下載好,接着考慮換鏡像源了,比如我們切換到清華大學的鏡像源

# --index-url可以簡寫為-i
python -m pip install --index-url https://pypi.tuna.tsinghua.edu.cn/simple/ pandas

除了官方源和清華鏡像源

  • 清華:https://pypi.tuna.tsinghua.edu.cn/simple/
  • 官方:https://pypi.org/

還有些別的鏡像源可以嘗試

  • 阿里雲:https://mirrors.aliyun.com/pypi/simple/
  • 豆瓣:https://pypi.douban.com/simple/
  • 北京外國語大學 https://mirrors.bfsu.edu.cn/pypi/web/simple/

方案六

除了切換鏡像源之外,pip 官方還提供了多種安裝依賴包的途徑

  1. 將依賴包提前下載好,然后從本地路徑直接安裝

比如我們可以從 pip 官網下載 pandas 的發行包文件,然后在本地依賴包所在目錄執行安裝命令。

從源碼包安裝

python -m pip install pandas-1.4.1.tar.gz

或者從構建包安裝

# 僅用於 Windows 平台的構建包
python -m pip install pandas-1.4.1-cp310-cp310-win_amd64.whl

所有的 pandas 分發包列表:pandas download files

  1. 從任何的 VCS(version control systems 版本控制系統)安裝,使用如下格式
python -m pip install -e "vcs+protocol://repo_url/#egg=pkg&subdirectory=pkg_dir"
  • vcs:版本控制系統名稱
  • protocol:協議
  • repo_url:倉庫地址
  • egg:包名稱
  • subdirectory:如果包不在項目根目錄,指定子目錄名稱

比如直接從 github 安裝 pandas 庫

python -m pip install git+https://github.com/pandas-dev/pandas.git#egg=pandas

這種方式會從 github 上拉取最新代碼做本地構建,需要的時間比較長,一般也是開發版本。

官方支持非常多的版本控制系統和協議,詳細查看 VCS 支持

  1. 從 github 安裝還支持手動本地安裝,將依賴包的 github 倉庫直接 clone 下來,在項目目錄中執行
python setup.py install

這樣就直接安裝了這個項目所構建的庫,本質上和用 github 遠程方式差不多,都需要做本地編譯,通常用作本地開發階段使用,或者想嘗試下項目最新特性。

不過如果你通過 pip install 的方式就有網絡問題,這種通過 github 安裝的方式通常也有一定網絡問題。

原文:https://lwebapp.com/zh/post/pip-install-error-guide

方案七

小編嘗試了上面幾種方案,都無法很完美的滿足我的需求,

  • 雖然設置了很長的超時時間,但是有時候網絡就是很慢,超時再長也很浪費時間
  • 鏡像相比較官方站有一點延后的同步時間,官方 pypi.org 的依賴包最為穩定,同樣的問題在前端開發的 npm 包管理中也很常見,鏡像源有時候會出現不可預測的錯誤,而往往切換到官方源就修復了(參照 npm install 報錯卡住
  • 直接下載源碼包構建的話,因為很多 Python 庫都是外國人寫的,網站不在本國家,訪問其他國家網站的時候下載速度很慢,從 github 下載也是一樣的情況(參照 github clone 很慢

我們可以考慮一些更科學的上網方式,來加快對官方網站的訪問速度。加速之后直接使用pip install安裝任何第三方庫,基本上幾秒鍾就可以完成,無需設置超時時間,不需要切換鏡像源,無需擔心安裝包版本延遲問題,想從 pip 官網下載源碼包或者使用 github 遠程安裝 Python 第三方庫都非常快。

除此之外,還有以下好處

  • 你在訪問一些 Python 第三方庫的文檔的時候,也可以加快訪問速度,比如 pandas 官網 https://pandas.pydata.org/
  • 上 github 學習開源項目源碼,使用 git clone 來拉取 github 開源項目的時候,速度提升明顯
  • 使用谷歌搜索出的技術文檔往往更精准,排在搜索結果前面的都是 stackoverflow 上的高贊回答,非常有用
  • 訪問其他一些優秀的技術網站

更科學的方式推薦:官方網站 ➜

不太明白的請參考這位小編的 踩坑經驗 ➜

參考


免責聲明!

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



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