2014-10-10 28 views
5

Tôi biết điều này có lẽ là điều gì đó tầm thường, nhưng tôi dường như không thể tìm ra câu trả lời. Tôi vừa mới hoàn thành một bản cài đặt mới của Scientific Linux 6.5 - bản phát hành với Python 2.6 và Qt 4.6.2. Tôi muốn sử dụng trình thông dịch Python python2.7.8 để tải về và cài đặt. Tôi sử dụng QtDesigner một cách dễ dàng khi làm cho guis, vì vậy sau đó cần các ràng buộc PyQt để đi với nó. Vì vậy, tôi đã tải về SIP-4.16.3, cấu hình với:Cài đặt PyQt4.11.2 trên Scientific Linux 6.5

python2.7 ./configure (trong thư mục tải về ngụm)

để làm cho các ràng buộc cho các phiên bản mới hơn của python. Tất cả mọi thứ hoạt động tốt cho đến nay. Sau đó, tôi thử cài đặt PyQt4.11.2 theo cách tương tự:

python2.7 ./configure --qmake =/usr/lib/qt4/bin/qmake -g (để chọn phiên bản qt4 của qmake với thư viện qt tĩnh)

kịch bản cấu hình hoàn mỹ, nhưng tôi nhận được lỗi sau trong 'make':

lỗi: 'PrintCurrentPage' không phải là một thành viên của 'QAbstractPrintDialog' ..../Downloads/PyQt-x11-gpl-4.11.2/QtGui/sipQtGuiQAbstractPrintDialog.cpp: 1787: lỗi: quá nhiều khởi tạo cho 'sipEnumMemberDef' làm cho [1]: * [sipQtGuiQAbstractPrintDialog.o] Lỗi 1 làm [1]: Rời thư mục `..../Downloads/PyQt-x11-gpl-4.11.2/QtGui' thực hiện: * [tất cả] Lỗi 2

tôi vào thời điểm này một ít bị mất và đã bashing đầu của tôi trong một thời gian, nó phải là một cái gì đó đơn giản tôi đã bỏ lỡ, bất kỳ trợ giúp sẽ là tuyệt vời.

Cảm ơn trước

+1

Ý kiến ​​của tôi: biên dịch qt (và liên quan) là một nỗi đau của hoàng gia, và bạn tốt hơn khi nhận được phân phối phù hợp với nhu cầu của bạn, trong trường hợp này có lẽ là anaconda. – mdurant

Trả lời

2
  1. Tìm kiếm chuỗi 'PrintCurrentPage' trong các tập tin của PyQt gói của bạn. Bạn sẽ tìm thấy nó trong 4 tập tin.
  2. Remove tương ứng với dòng với chuỗi 'PrintCurrentPage'
+1

Trong phiên bản mới nhất của trình cài đặt, nó chỉ có trên một tệp (QtGui/sipQtGuiQAbstractPrintDialog.cpp). Tôi chỉ cần loại bỏ các dòng trong đó PrincCurrentPage được tuyên bố và tất cả mọi thứ đã làm việc ra hoàn hảo (cảm ơn cho đề xuất giải pháp này!). –

+0

@ Néstor Điều đó làm việc cho tôi trên Centos6 với python 2.7.11. Nếu bạn đặt câu trả lời đó vào một câu trả lời, tôi sẽ bỏ phiếu cho nó – Kevin

1

Tôi biết chủ đề này là cũ, nhưng tôi chạy vào một lỗi tương tự cài đặt PyQt4.11.4 theo nguồn trên 5 máy Red Hat Enterprise Linux.

Tôi đã kết thúc thêm các thành viên 'PrintShowPageSize = 0x0008''PrintCurrentPage = 0x0040' vào định nghĩa lớp học QAbstractPrintDialog. Định nghĩa lớp C++ này nằm trong tệp tiêu đề qabstractprintdialog.h. Trên bản phân phối của tôi, số này nằm ở số /usr/lib64/qt4/include/QtGui/.

Sau khi thêm các thành viên bị thiếu, tôi chạy lại không có lỗi biên dịch.

Lý do duy nhất tôi vấp phải giải pháp này là xem phiên bản qtabstractprintdialog.hhere này. Tôi nhận thấy phiên bản tệp tiêu đề của tôi thiếu các thành viên trong lớp QAbstractPrintDialog.

Tôi chưa cài đặt PyQt4 mới để sử dụng, vì vậy tôi không thể xác minh cho chức năng ngay bây giờ. Nhưng nó đã biên dịch/cài đặt!

Các vấn đề liên quan