【问题标题】:Getting import error with sub modules of PyQt5PyQt5的子模块出现导入错误
【发布时间】:2020-10-25 22:46:54
【问题描述】:

我正在尝试在 Ubuntu 14.04 上安装和使用 PyQt5。在此之前,我一直在使用 Ubuntu 18.04,安装和使用 PyQt5 没有任何问题。由于某个项目的一些技术需求,我需要改用14.04。

在我第一次启动 Ubuntu 之后,这是我安装东西的顺序:

安装 Python 3.6:

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
sudo apt-get install python3.6

安装 QT5

sudo apt-get install build-essential
sudo apt-get install qtcreator
sudo apt-get install qt5-default

安装 PyQt5

sudo apt-get install python3-pyqt5
sudo apt-get install pyqt5-dev-tools
sudo apt-get install qttools5-dev-tools

完成后,我运行这段测试代码,看看是否出现导入错误:

import sys
from PyQt5 import QtCore, QtWidgets

当我运行它时,我得到了这个错误。它为 PyQt5 的任何子模块提供错误。在 Ubuntu 18.04 上,我对 qt5 和 pyqt5 执行了与上述相同的安装步骤,并且运行良好。 (没有安装 python 3.6,因为它已经安装了 Ubuntu 18)。

回溯(最近一次通话最后一次):
文件“/home/ms/test.py”,第 2 行,在
从 PyQt5 导入 QtCore
ImportError: 无法导入名称“QtCore”

我也尝试使用 pip 或 pip3 安装 pyqt5,但出现错误。

pip3 install pyqt5

错误:

Command python setup.py egg_info failed with error code 1 in /tmp/pip_build_ms/pyqt5
Storing debug log for failure in /home/ms/.pip/pip.log

任何帮助将不胜感激。过去几天我一直在努力解决这个问题,但仍然不知道问题可能是什么。

【问题讨论】:

    标签: python pyqt5 python-3.6 ubuntu-14.04


    【解决方案1】:

    以下步骤用于使用 ubuntu 在 docker 中安装 PyQt5:14.04:

    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
    python3.6 -c "from PyQt5 import QtCore, QtWidgets"
    

    【讨论】:

    • 为什么需要 docker?我会试试这个。
    • @RamboPenguin 我没有说必须使用 docker,但我将它用于基于 ubuntu 14.04 的 docker,它可能对你有用。
    • 当我尝试运行实际的 GUI 脚本时,现在出现此错误:/home/ms/Documents/GUI/3StepTest.py /usr/bin/python3.6: relocation error: /usr /local/lib/python3.6/dist-packages/PyQt5/Qt/plugins/platforms/../../lib/libQt5DBus.so.5:符号 dbus_message_set_allow_interactive_authorization,版本 LIBDBUS_1_3 未在文件 libdbus-1.so 中定义。 3 与链接时间参考
    • @RamboPenguin 该错误可能是因为 Qt 需要比 ubuntu 14.04 提供的更多现代库,也许如果您安装旧版本的 PyQt5 它可以工作:sudo python3.6 -m pip install pyqt5==5.9.2,请参阅pypi.org/project/PyQt5/#history,为什么是 python 3.6 有必要吗?
    • Python 3.6 不是必需的——通常只需要 python 3。我正在尝试 3.6,因为那是我在 Ubuntu 18.04 中使用的——我会试试你的想法。
    猜你喜欢
    • 1970-01-01
    • 2021-10-24
    • 1970-01-01
    • 2022-11-30
    • 2019-09-07
    • 2016-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多