[英]pip3 does not install the target module version
在 Ubuntu Studio 18.04 上使用 Python 3.6.9 和 pip 9.0.1,我試圖將 PyQt5 模塊從版本 5.10.1 降級到 5.9.2。
安裝似乎沒有問題就完成了,但是pip3確認5.10.1安裝成功:
pip3 install --no-cache-dir 'PyQt5==5.9.2'
輸出:
Collecting PyQt5==5.9.2
Downloading https://files.pythonhosted.org/packages/3a/c6/26270f5550f00920045c2f0b222a7d03d7a64382825c68bf0bb1a51d854c/PyQt5-5.9.2-5.9.3-cp35.cp36.cp37-abi3-manylinux1_x86_64.whl (105.3MB)
100% |████████████████████████████████| 105.3MB 11.0MB/s
Collecting sip<4.20,>=4.19.4 (from PyQt5==5.9.2)
Downloading https://files.pythonhosted.org/packages/8a/ea/d317ce5696dda4df7c156cd60447cda22833b38106c98250eae1451f03ec/sip-4.19.8-cp36-cp36m-manylinux1_x86_64.whl (66kB)
100% |████████████████████████████████| 71kB 4.2MB/s
Installing collected packages: sip, PyQt5
Successfully installed PyQt5-5.10.1 sip-4.19.8
檢查當前版本:
pip3 show PyQt5
輸出:
Name: PyQt5
Version: 5.10.1
Summary: Python bindings for the Qt cross platform UI and application toolkit
Home-page: https://www.riverbankcomputing.com/software/pyqt/
Author: Riverbank Computing Limited
Author-email: info@riverbankcomputing.com
License: GPL v3
Location: /home/stragu/.local/lib/python3.6/site-packages
Requires: sip
我也嘗試卸載並再次安裝它,但我最終安裝了 5.10 版(即不是5.10.1)。 就像它至少強制使用 5.10 版一樣。
但是,當我在 Python3 內核中執行以下操作時:
from PyQt5.Qt import PYQT_VERSION_STR
print("PyQt version:", PYQT_VERSION_STR)
我發現它顯然使用的是 5.9.2 版!
知道這里會發生什么嗎?
此安裝中的默認 pip3 版本 9.0.1 似乎存在問題,該版本始終報告(在安裝結束時,或在使用pip3 list
模塊版本時)該模塊有史以來安裝的最高版本。
我用以下方法升級了 pip3:
python3 -m pip install --upgrade pip
現在它按預期工作,報告用戶要求的正確模塊版本號(與從 Python3 內核查找相關模塊的版本號時檢索到的任何內容相匹配)。
您正在使用系統的 Python。 該模塊也與 Apt 一起安裝在系統范圍內。 Pip 行為的奇怪之處在於 Debian 補丁。
我(盲目地)通過檢查 Bionic中顯示版本號5.10.1
PyQt5 包來猜到第一個。
檢查pip 9.0.1-2.3~ubuntu1.18.04.1
源存檔中的補丁(可從https://launchpad.net/ubuntu/+source/python-pip/9.0.1-2.3~ubuntu1.18.04 獲得。 1 ) 顯示了set_user_default.patch
中的以下相關更改:
在非虛擬環境中以普通用戶身份運行時,默認為--user 和--ignore-installed。
(我想這是為了修復pip install
UX 與早期的行為相比, 后者拒絕系統范圍的安裝並出現邏輯但模糊的錯誤。)
但是,補丁僅將此應用於install
命令。
因此,您將PyQt5-5.9.2
安裝到用戶站點——而pip3 show
向您顯示系統站點上的包,您需要運行pip3 list --user
以查看后者。
我不知道為什么pip3 install
在最后顯示了錯誤的版本,但猜測該行是由支持pip3 show
的相同代碼生成的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.