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的主要内容,如果未能解决你的问题,请参考以下文章