簡體   English   中英

pip3 沒有安裝目標模塊版本

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM