【问题标题】:PyQt5 - Error import QtWidgets QtGuiPyQt5 - 错误导入 QtWidgets QtGui
【发布时间】:2014-05-01 03:45:06
【问题描述】:

我正在运行 Ubuntu 13.10 (python-3.3.2+) 。我已经从官方网站的源代码安装了 Qt5.2.1 (linux 安装程序)、SIP 4.15.5 和 PyQt5。

PyQt5 构建:

Qt qmake 位于此处

jeby6372@mercure:~$ ls /opt/Qt/5.2.1/gcc_64/bin
assistant             qdbus           qml1plugindump    qmlviewer
designer              qdbuscpp2xml    qml2puppet        qtpaths
lconvert              qdbusviewer     qmlbundle         rcc
linguist              qdbusxml2cpp    qmlimportscanner  syncqt.pl
lrelease              qdoc            qmlmin            uic
lupdate               qhelpconverter  qmlplugindump     xmlpatterns
moc                   qhelpgenerator  qmlprofiler       xmlpatternsvalidator
pixeltool             qmake           qmlscene
qcollectiongenerator  qml             qmltestrunner

我的python路径

jeby6372@mercure:~$ echo $PYTHONPATH
:/usr/lib/python3.3/site-packages

Qt5 库(为显示目的而缩短列表):

jeby6372@mercure:/opt/Qt/5.2.1/gcc_64/lib$ ls
cmake                              libQt5Positioning.so.5
libicudata.so.51                   libQt5Positioning.so.5.2
libicudata.so.51.1                 libQt5Positioning.so.5.2.1
libqgsttools_p.so                  libQt5PrintSupport.so.5.2.1
libqgsttools_p.so.1                libQt5QmlDevTools.a
libQt5CLucene.so.5.2               libQt5QuickParticles.so.5.2.1
libQt5Concurrent.so.5.2            libQt5QuickTest.la
libQt5Concurrent.so.5.2.1          libQt5QuickTest.prl
libQt5Core.so.5.2.1                libQt5Script.prl
libQt5DBus.la                      libQt5Script.so
....... 
libQt5Multimedia.so                libQt5WebKit.prl
libQt5Nfc.la                       libQt5Widgets.so.5.2.1
libQt5Nfc.prl                      libQt5X11Extras.la
libQt5Nfc.so                       libQt5X11Extras.prl
libQt5Nfc.so.5                     libQt5X11Extras.so
libQt5Nfc.so.5.2                   libQt5X11Extras.so.5
libQt5OpenGLExtensions.a           libQt5X11Extras.so.5.2.1
libQt5OpenGLExtensions.la          libQt5Xml.la
libQt5OpenGL.so                    libQt5XmlPatterns.so.5
libQt5OpenGL.so.5                  libQt5XmlPatterns.so.5.2
libQt5OpenGL.so.5.2.1              libQt5Xml.prl
libQt5Platfor
libQt5PlatformSupport.prl          libQt5Xml.so.5.2
libQt5Positioning.so

我在从官方 PyQt-gpl-5.2.1.tar.gz tarball 中提取的源目录中运行了以下命令:

python3 configure.py --qmake /opt/Qt/5.2.1/gcc_64/bin/qmake # My PyQt5 location
sudo make
sudo make install

问题:

我只能导入一组受限的模块

>>> from PyQt5.QtCore import *
>>> from PyQt5.QtNetwork import *
>>> from PyQt5.QtXmlPatterns import *
>>> from PyQt5.Qt import *
>>> from PyQt5.QtGui import *
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named 'PyQt5.QtGui'
>>> from PyQt5.QtWidgets import *
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named 'PyQt5.QtWidgets'

我可以导入 /usr/local/python3.3/sites-packages/PyQt5 中列出的 QtCore、QtNetwork ...:

jeby6372@mercure:/usr/lib/python3.3/site-packages/PyQt5$ ls
__init__.py  QtCore.so  QtDBus.so  QtNetwork.so  Qt.so  QtXmlPatterns.so  uic

但是我不能导入QtWidgets、QtGui ..等等。

这里好像PyQt5的库不是全部复制过来的。

post 中描述了同样的问题......但不幸的是,RiverBank 的团队没有回应:

有什么想法吗?

【问题讨论】:

  • 您链接的帖子中问题的原因是OpenGL was not installed。也许这也是你的问题 - 尝试安装 libgl1-mesa-dev 和 libgl1-mesa-glx 并重新编译 PyQt5
  • 链接的帖子得到了三个回复,均来自项目维护者。其中一个响应要求查看设置了--verbose 标志的configure.py 的输出。如果他安装 OpenGL 的建议不能解决您的问题,请在此处执行相同操作。
  • 谢谢你,玛塔。您的解决方案完美运行。我刚刚安装了缺少的 libgl1-mesa-dev 包,从源代码编译了 PyQt5,一切都很好(除了另一个 Qt 重绘错误,但这将记录到新帖子中)。再次感谢。
  • ekhumoro 你是对的。我应该通过 configure.py --verbose 选项进行更深入的调查。下次我不会忘记的。谢谢。
  • 与其在标题中加入“SOLVED”,不如直接接受自己的答案?这是将此问题标记为已解决的正确方法。

标签: python-3.x qtgui pyqt5 qtwidgets


【解决方案1】:

缺少包裹

按照 mata 的建议安装缺少的 libgl1-mesa-dev 依赖项。它是 OpenGL API 的免费实现。

构建

sudo apt-get install libgl1-mesa-dev

创建或清理你的 PyQt5 编译环境并按照常规程序构建它。

另类

如果此修复无法解决您的问题,请安装 libgl1-mesa-glx 包(GLX 运行时)和 libgl1-mesa-dri(绘图加速器)(如果它们也丢失)并继续 构建 说明。

希望对您有所帮助。

【讨论】:

  • 我在 Mac OS 10.9 上遇到了同样的问题;我可以下载一个类似的库/框架来解决这个问题吗?
猜你喜欢
  • 1970-01-01
  • 2021-04-21
  • 2014-01-12
  • 2019-08-06
  • 2021-01-23
  • 1970-01-01
  • 2016-02-17
  • 2018-12-28
相关资源
最近更新 更多