2014-10-10 63 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安裝使用,所以我現在不能擔保功能。但它確實編譯/安裝!