【问题标题】:Python modules/packages can only be seen by a particular version of python 3 (Ubuntu 14.04.6)Python 模块/包只能被特定版本的 python 3 (Ubuntu 14.04.6) 看到
【发布时间】:2020-07-23 22:00:48
【问题描述】:

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

  • Qt5

  • Python 3.6

  • PyQt5

  • Pyudev(0.20.0 或更高版本)

目前,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 --version”时,“python3”正在引用python3.4。

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

这就是我根据之前的帖子安装所有东西的方式:Getting import error with sub modules of PyQt5 我从其他帖子中更改了 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 的新手,并试图了解一切是如何工作的。

【问题讨论】:

  • 提示:Python 包永远不会安装到“Python”中。每个包都安装了一个 Python 版本。如果您要使用 2 个 Python 和一组相同或相似的包,您必须安装 2 组包,每个 Python 一个。
  • 建议:始终使用 Python 虚拟环境。在虚拟环境之外安装的唯一软件包是virtualenv。也可以考虑使用conda
  • @phd 那么如何为特定的 python 版本安装包呢?这样做的方法是什么?我只需要 pyqt5 和 pyudev 就可以在 python3.6 上工作。
  • pip3.6 installpython3.6 -m pip install。创建并激活虚拟环境(使用virtualenv -p python3.6 venv; . venv/bin/activate);那么pip installpython -m pip install 也可以使用。

标签: python python-3.x pip pyqt5 ubuntu-14.04


【解决方案1】:

您使用的是非官方存储库,因此使用apt-get python3-foopackage不会在python3.6中安装foopackage,而是在系统python3中,因此在my previous answer中我指出您必须安装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

【讨论】:

  • 好的,我知道应该使用pip。问题是,当我尝试在另一台计算机(仍然是 Ubuntu 14.04.6)上安装时,“sudo python3.6 -m pip install pyqt5==5.9.2”给了我一个错误。 (我在帖子中描述的那个)。 “错误:找不到满足 PyQt5 要求的版本(来自版本:无)”。你知道这是什么原因吗?
  • @RamboPenguin 之前的帖子还没解决?您确定您已按照所有步骤进行操作吗?两台 PC 是否具有相同的特性,例如都是 64 位?
  • 不,我想我不完全确定。我将这些确切的步骤发送给另一个人以在他们的计算机上安装。据我所知,这是他们输入的内容。我将验证.... @eyllanesc
  • @RamboPenguin 建议:如果其他人要执行这些命令,建议 1)您创建一个执行所有步骤的脚本,或 2)您要注意每个步骤的所有证据步骤已执行(例如,您在执行每个步骤时获得的图像)。如果 PC 是 32 位,那么您将不得不编译 pyqt5,因为该公司仅提供 64 位的二进制文件
  • 它是 32 位的!我原来的系统是 64 位的。如果是32位需要改什么?
猜你喜欢
  • 2017-06-26
  • 2013-10-21
  • 2020-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-22
  • 2019-03-22
  • 2012-06-10
相关资源
最近更新 更多