Python modules/packages 只能被特定版本的 python 3 (Ubuntu 14.04.6) 看到

Python modules/packages can only be seen by a particular version of python 3 (Ubuntu 14.04.6)

我正在尝试将以下内容安装到 Ubuntu 14.04.6 系统上:

目前,PyQt5 是问题所在。当我 运行 一个 python 脚本为:

python3.6 myscript.py

其中 myscript.py 是:

import sys
import pyudev.pyqt5
from PyQt5 import QtCore, QtGui

我收到导入错误 - “没有名为 QtCore 的模块”。

所以它正在寻找 PyQt5 包,但找不到 QtCore 或 QtGui 等

奇怪的是,当我 运行 下面的命令时,我没有收到 QtCore 导入错误,而是收到 pyudev.pyqt5 导入错误。

python3 myscript.py

"python3" 在我执行 "python3 --version".

时引用 python3.4

本质上,PyQt5 只能被 python 3.4 看到,pyudev 只能被 python 3.6 看到。

这就是我根据之前的 post 安装所有内容的方式: 我从另一个 post 更改了 pyqt5 安装行,因为我得到了错误:

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

安装过程:

#install qt5
sudo apt update
sudo apt install build-essential
sudo apt install qtcreator
sudo apt install qt5-default

#install pip
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
sudo apt-get install python3.6
sudo apt-get install curl
curl https://bootstrap.pypa.io/get-pip.py
sudo python3.6 -m pip install --upgrade pip

#install pyqt5
sudo apt install python3-pyqt5

sudo apt-get install '^libxcb.*-dev' libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev libxkbcommon-dev libxkbcommon-x11-dev libfontconfig1

#install pyudev
pip install pyudev

我的核心问题: 为什么pyudev和pyqt5不能同时导入python3.6脚本?

如有任何帮助,我们将不胜感激。如果我做错了什么,请告诉我。我是 Ubuntu 的新手,正在努力了解一切是如何运作的。

您正在使用非官方存储库,因此使用 apt-get python3-foopackage 不会在 python3.6 中安装 foopackage,而是在系统 python3 中,因此在 我指出你必须安装 pip 来安装 pyqt5(一个旧版本的 pyqt5),你应该对 pyudev 做同样的事情:

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
sudo apt-get install python3.6
sudo apt-get install curl
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
sudo python3.6 get-pip.py
sudo python3.6 -m pip install --upgrade pip
sudo python3.6 -m pip install pyqt5==5.9.2
sudo apt-get install '^libxcb.*-dev' libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev libxkbcommon-dev libxkbcommon-x11-dev libfontconfig1
sudo python3.6 -m pip install pyudev

然后你 运行 你的脚本使用 python3.6,而不是 python3.

python3.6 myscript.py