在 Ubuntu 14.04 中为 Python3.4 构建 PyQt5 的问题是由 qprinter.h 引起的,然后 pyuic5 错误

Posted

技术标签:

【中文标题】在 Ubuntu 14.04 中为 Python3.4 构建 PyQt5 的问题是由 qprinter.h 引起的,然后 pyuic5 错误【英文标题】:Issues building PyQt5 for Python3.4 in Ubuntu 14.04 caused by qprinter.h not found then pyuic5 error 【发布时间】:2014-12-21 01:04:00 【问题描述】:

在安装了最新的 SIP 和最新的 Qt5 之后,我尝试为 python 3.4 构建最新的 PyQt5。

我像这样启动 pyqt5 配置:

python3 configure.py --qmake=/opt/Qt/5.3/gcc_64/bin/qmake

然后 make 和 sudo make install。 在 sudo make install 我得到这个错误:

cd QtWebKitWidgets/ && ( test -e Makefile || /opt/Qt/5.3/gcc_64/bin/qmake /home/me/Downloads/PyQt-gpl-5.3.2/QtWebKitWidgets/QtWebKitWidgets.pro -o Makefile ) && make -f Makefile install
make[1]: Entering directory `/home/me/Downloads/PyQt-gpl-5.3.2/QtWebKitWidgets'
g++ -c -pipe -fno-exceptions -O2 -Wall -W -D_REENTRANT -fPIC -DSIP_PROTECTED_IS_PUBLIC -Dprotected=public -DQT_NO_DEBUG -DQT_PLUGIN -DQT_WEBKITWIDGETS_LIB -DQT_WEBKIT_LIB -DQT_WIDGETS_LIB -DQT_NETWORK_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I/opt/Qt/5.3/gcc_64/mkspecs/linux-g++ -I. -I. -I/usr/include/python3.4m -I/opt/Qt/5.3/gcc_64/include -I/opt/Qt/5.3/gcc_64/include/QtWebKitWidgets -I/opt/Qt/5.3/gcc_64/include/QtWebKit -I/opt/Qt/5.3/gcc_64/include/QtWidgets -I/opt/Qt/5.3/gcc_64/include/QtNetwork -I/opt/Qt/5.3/gcc_64/include/QtGui -I/opt/Qt/5.3/gcc_64/include/QtCore -I. -o sipQtWebKitWidgetsQWebView.o sipQtWebKitWidgetsQWebView.cpp
sip/QtPrintSupport/qprinter.sip:28:22: fatal error: qprinter.h: No such file or directory
compilation terminated.
make[1]: *** [sipQtWebKitWidgetsQWebView.o] Error 1
make[1]: Leaving directory `/home/me/Downloads/PyQt-gpl-5.3.2/QtWebKitWidgets'
make: *** [sub-QtWebKitWidgets-install_subtargets-ordered] Error 2

我可以导入 QtCore、QtGui 等,但不能像 QtWidgets 一样在 QtWebKitWidgetsQWebView 之后按字母顺序导入模块...

编辑: 第一个补丁

$ sudo apt-get install qtbase5-dev

然后在 make 和 sudo make install 我得到这个错误:

install -m 755 -p /home/me/Downloads/PyQt-gpl-5.3.2/pyuic5 /usr/bin/
strip /usr/bin/pyuic5
strip:/usr/bin/pyuic5: File format not recognized
make: [install_pyuic5] Error 1 (ignored)

【问题讨论】:

【参考方案1】:

qprinter.h 在 Qt 5.3 的 QtPrintSupport 模块中,但包含目录不在编译器命令中。修改configure.py 使得

'QtWebKitWidgets':    ModuleMetadata(qmake_QT=['webkitwidgets', 'printsupport']),

而不是

'QtWebKitWidgets':    ModuleMetadata(qmake_QT=['webkitwidgets']),

解决构建失败问题。

【讨论】:

以上是关于在 Ubuntu 14.04 中为 Python3.4 构建 PyQt5 的问题是由 qprinter.h 引起的,然后 pyuic5 错误的主要内容,如果未能解决你的问题,请参考以下文章

Ubuntu14.04下Python3.4启动IDLE

命令行无法在 Ubuntu 14.04 中为 ROS 创建 catkin 工作区

ubuntu14.04安装python3.6和pip9.0.1

如何在ubuntu14.04安装python3.5

无法在 Python3、Ubuntu14.04 中使用 pip 安装 NumPy

删除python3.4后,在ubuntu 14.04中没有显示仪表板/终端/侧边栏