pip3不安装目标模块版本

时间:2020-02-04 02:59:43

标签: python pip pyqt5 ubuntu-18.04

我在Ubuntu Studio 18.04上使用Python 3.6.9和pip 9.0.1,试图将PyQt5模块的版本从5.10.1降级到5.9.2。

安装似乎已成功完成,但pip3确认 5.10.1 已成功安装:

A   B   C
1   2   Background
3   19  Background
20  25  other
26  41  person
43  69  person
70  82  other
83  97  Background
98  106 other
107 129 Background
130 131 other
132 179 Background
180 188 other
189 235 Background
236 242 other
243 258 Background
259 260 other
261 279 person

输出:

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

我也尝试过再次卸载并安装它,但最终安装的是5.10版(即 not 5.10.1)。就像它强制最低版本5.10。

但是,当我在Python3内核中执行以下操作时:

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.9.2版!

你知道这里会发生什么吗?

2 个答案:

答案 0 :(得分:1)

此安装上的默认版本pip3(版本9.0.1)似乎有问题,该版本始终会报告(在安装结束时,或使用pip3 list列出模块版本时)模块的有史以来最高版本。

我通过以下方式升级了pip3:

python3 -m pip install --upgrade pip

现在它可以按预期工作,报告用户要求的正确模块版本号(与从Python3内核中查找相关模块的版本号时检索到的内容相匹配)。

答案 1 :(得分:0)

您正在使用系统的Python。此模块也与Apt一起安装在系统范围内。 Pip行为的奇怪之处在于Debian补丁。


我(盲目地)猜出了checking PyQt5 packages in Bionic的第一个,它显示了您看到的版本号5.10.1

检查the source archive for 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已安装。

(与earlier behavior which denied system-wide installation with a logical but obscure error相比,我想是要为pip install修复UX。)

但是,该修补程序仅将此应用于install命令。

因此,您将PyQt5-5.9.2安装到用户站点-pip3 show在系统站点向您显示软件包,并且您需要运行pip3 list --user来查看后者。

我不知道为什么到底pip3 install到底显示了一个错误的版本,但我猜想这行是由为pip3 show供电的同一代码生成的。