2014-10-10 59 views
5

我知道这可能是微不足道的,但我似乎无法找到答案。我刚刚完成了Scientific Linux 6.5的全新安装 - 它随Python 2.6和Qt 4.6.2一起提供。我希望使用Python解释器python2.7.8所以下载并安装。我在制作guis时使用了QtDesigner,所以需要使用PyQt绑定。因此,我下载了SIP-4.16.3,配置有:在Scientific Linux 6.5上安装PyQt4.11.2

python2.7的./configure(在SIP下载目录)

使绑定蟒蛇的新版本。到目前为止一切正常。 然后,我尝试以相同的方式安装PyQt4.11.2:

python2.7 ./configure --qmake =/usr/lib/qt4/bin/qmake -g(用于选择qmake的qt4版本静态Qt库)

配置脚本完成很好,但我“制作”期间收到以下错误:

错误:“PrintCurrentPage”不是“QAbstractPrintDialog” 成员.... /下载/ PyQt-x11-gpl-4.11.2/QtGui/sipQtGuiQAbstractPrintDialog.cpp:1787:error:'sipEnumMemberDef'的初始化程序过多 make [1]:* [sipQtGuiQAbstractPrintDialog.o]错误1 使[1]:离开目录`... /下载/ PyQt的-X11-GPL-4.11.2/QtGui” 化妆:* [全部]错误2

我在这一点上失去了一点点,并且一直在抨击我的头脑,这一定是我错过的简单事情,任何帮助都会很棒。在你的PyQt封装的文件

在此先感谢

+1

我的观点:编译qt(和相关的)是一个皇家的痛苦,你最好得到一个足以满足你的需求的分配,在这种情况下也许是水蟒。 – mdurant 2014-10-10 14:34:30

回答

2
  1. 搜索字符串 'PrintCurrentPage'。你会在4个文件中找到它。
  2. 删除对应了字符串“PrintCurrentPage”
+1

在最新版本的安装程序中,它只在一个文件(QtGui/sipQtGuiQAbstractPrintDialog.cpp)上。我刚刚删除了PrincCurrentPage被声明的那一行,并且一切都完美无缺(感谢您提供此解决方案!)。 – 2016-08-19 16:36:15

+0

@Néstor在python 2.7.11的Centos6上为我工作。如果你把答案放在答案中,我会投票赞成 – Kevin 2017-04-24 16:47:44

1

我知道这个线程是老线,但我遇到了一个类似的错误由源的红帽企业Linux 5的机器上安装PyQt4.11.4

我最终将成员'PrintShowPageSize = 0x0008''PrintCurrentPage = 0x0040'添加到类别定义QAbstractPrintDialog。该C++类定义位于头文件qabstractprintdialog.h中。在我的发行版中,它位于/usr/lib64/qt4/include/QtGui/

添加这些缺失的成员后,我重新运行make没有编译错误。

我偶然发现这个解决方案的唯一原因是看这个版本的qtabstractprintdialog.hhere。我注意到我的头文件版本缺少QAbstractPrintDialog类中的成员。

我还没有把新的PyQt4安装使用,所以我现在不能担保功能。但它确实编译/安装!