我正在尝试为我的 virtualenv 构建 pyqt5,但没有 QtWidgets 包或模块或任何它应该是的。而且我无法导入 QtGui。这就是我尝试构建它的方式:
python configure.py --qmake=/opt/Qt/5.2.0/gcc_64/bin/qmake
make
make install
我发现自己在安装全新的 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,请使用 --verbose 和 configure.py 来查找导致问题的原因。
我昨天遇到了同样的问题。我通过删除 PyQt5 安装似乎引用的 python3-sip 包在 Ubunutu 13.10 上解决了它。
sudo apt-get remove python3-sip
和清理:
sudo apt-get autoremove
然后在新环境(make clean)中再次安装 sip 4.15.5 和 PyQt5 或恢复源目录。
注意:安装后为我提供了一些 PyQt5 库(基于图形)。在重新安装之前,我必须安装 libgl1-mesa-dev 包。
希望对您有所帮助。