PyQt5 没有 QtGui 和 QtWidgets

Posted

技术标签:

【中文标题】PyQt5 没有 QtGui 和 QtWidgets【英文标题】:PyQt5 without QtGui and QtWidgets 【发布时间】:2014-01-31 17:16:27 【问题描述】:

我正在尝试为我的 virtualenv 构建 pyqt5,但没有 QtWidgets 包或模块或任何应有的内容。而且我无法导入 QtGui。 这就是我尝试构建它的方式:

python configure.py --qmake=/opt/Qt/5.2.0/gcc_64/bin/qmake
make
make install

【问题讨论】:

我不确定您所说的“没有 QtWidgets”是什么意思。您可以发布您收到的错误消息吗? 我在构建 PyQt 时没有收到任何错误消息。但是我的 PyQt 包中没有称为 QtGui 或 QtWidgets 的模块。所以我无法导入它们。 我遇到了这样的问题。查看我的解决方案,看看它是否有帮助。 ***.com/questions/20179761/… 【参考方案1】:

我发现自己在安装全新的 Ubuntu 时遇到了同样的情况。我可以导入 QCore,但不能导入 QWidgets 或 QGui(或其他几个)。

看configure.py的输出,应该有一行:

These PyQt5 modules will be built: QtCore, QtGui, QtHelp, QtMultimedia, QtMultimediaWidgets, QtNetwork, QtOpenGL, QtPrintSupport, QtQml, QtQuick, QtSql, QtSvg, QtTest, QtWebKit, QtWebKitWidgets, QtWidgets, QtXml, QtXmlPatterns, QtDesigner, QtDBus, _QOpenGLFunctions_2_0, QtSensors, QtSerialPort, QtX11Extras, QtBluetooth, QtPositioning, QtQuickWidgets, QtWebSockets, Enginio, QtWebChannel, QtWebEngineWidgets

如果此列表相当短,缺少 QtGui 等,您的安装可能缺少 OpenGL。 就我而言...

sudo apt-get install freeglut3-dev

...安装了足够多的与图形相关的东西,因此配置决定它可以尝试构建所有模块。这很令人困惑,因为 configure.py 没有给出错误(除非你使用 --verbose -flag),它只是省略了它不能创建的模块。如果不是 OpenGL,请在 configure.py 中使用 --verbose 来查找导致问题的原因。

【讨论】:

这适用于我在新安装的 Ubuntu 14.04 上。【参考方案2】:

使用python3-sip标准包安装PyQt5

我昨天遇到了同样的问题。我通过删除 PyQt5 安装似乎引用的 python3-sip 包在 Ubunutu 13.10 上解决了这个问题。

sudo apt-get remove python3-sip

和清理:

sudo apt-get autoremove

然后在新环境中重新安装 sip 4.15.5 和 PyQt5(make clean)或恢复源目录。

注意:安装后我需要一些 PyQt5 库(基于图形)。我必须在重新安装之前安装 libgl1-mesa-dev 包。

希望对你有帮助。

【讨论】:

以上是关于PyQt5 没有 QtGui 和 QtWidgets的主要内容,如果未能解决你的问题,请参考以下文章

PyQt5 导入 QtGui 失败

带有 Matplotlib 的 PyQT5 插槽没有效果

PyQt5 多线程崩溃,没有控制台错误

Python PyQt5 进度条没有进展

PyQt5 Pixmap 来自内置游标

pyQt5在同一窗口中添加多张图片