Python3 绑定到旧版本

Posted

技术标签:

【中文标题】Python3 绑定到旧版本【英文标题】:Python3 tied to older version 【发布时间】:2020-06-27 14:13:00 【问题描述】:

背景:我目前正在运行 Elementary OS Hera(Ubuntu 18.04 LTS)。该发行版随附 Python 3.6.9。在某个时候,我安装了 Python 3.7.5...这是问题开始的时候。

问题:我正在尝试安装 PyQt5,它出于某种原因一直默认为旧版本。我确保 Python3 引用了较新的版本:

Wick:~$ python3 --version
Python 3.7.5

我还确保 python3.7 是主要版本:

Wick:~$ sudo update-alternatives --config python3
There are 2 choices for the alternative python3 (providing /usr/bin/python3).

  Selection    Path                Priority   Status
------------------------------------------------------------
  0            /usr/bin/python3.7   2         auto mode
  1            /usr/bin/python3.6   1         manual mode
* 2            /usr/bin/python3.7   2         manual mode

但是当我运行 sudo apt-get install -y python3-pyqt5 时。它仍然继续安装到 3.6 版本。这可以通过以下方式验证:

:~$ python3 -c "from PyQt5.QtCore import QSettings; print('done')"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'PyQt5.QtCore'

和踢球者

:~$ python3.6 -c "from PyQt5.QtCore import QSettings; print('done')"
done

:~$ python3.7 -c "from PyQt5.QtCore import QSettings; print('done')"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'PyQt5.QtCore'

非常感谢您提供的任何帮助。我快疯了。

附言作为新手提前道歉

【问题讨论】:

我可能会误解 this page,但看起来 apt-get为分发默认版本 3.6 安装它。 我建议使用使用 /usr/bin/python3.7 创建的虚拟环境,然后使用 pip 安装 pyqt5,而不是尝试通过包管理器安装它。 这很棒!我不完全确定如何根据您的回答将其标记为已解决(因为它是评论) 您可以写下您所做的事情作为自我回答。 【参考方案1】:

包只依赖python3.6:https://packages.ubuntu.com/bionic/python3-pyqt5。它将被安装,因为它是先决条件。

【讨论】:

【参考方案2】:

@chepner 解决了这个问题:

“我建议使用使用 /usr/bin/python3.7 创建的虚拟环境,>然后使用 pip 在其中安装 pyqt5,而不是尝试通过您的 >包管理器安装它。”

非常感谢!

【讨论】:

以上是关于Python3 绑定到旧版本的主要内容,如果未能解决你的问题,请参考以下文章

Python3.7之绑定方法与非绑定方法

python3 多态,绑定方法与非绑定方法

Python3 从零单排20_方法(绑定&内置)&反射

在 Ubuntu 上为 libtorrent 安装 Python3 绑定

python3 - 动态添加属性以及方法

Kivy,Python3.5 - 将用户文本输入绑定到类中的方法