Не удается найти sip.h при установке pyQt4

Я пытаюсь установить PyQt-x11-gpl-4.11 в свою Ubuntu 13.04 Linux vm, configure-ng.py работает хорошо, но при использовании make выдает сообщение об ошибке ниже, **

root@ubuntu:/home/yanwang/Downloads/PyQt-x11-gpl-4.11# make
cd QtCore/ && make -f Makefile 
make[1]: Entering directory `/home/yanwang/Downloads/PyQt-x11-gpl-4.11/QtCore'
g++ -c -m64 -pipe -O2 -Wall -W -D_REENTRANT -fPIC -DSIP_PROTECTED_IS_PUBLIC -Dprotected=public -DQT_NO_DEBUG -DQT_PLUGIN -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4 -I. -I/usr/local/include/python2.7 -I../qpy/QtCore -I. -o sipQtCoreQTimer.o sipQtCoreQTimer.cpp
In file included from sipQtCoreQTimer.cpp:29:0:
sipAPIQtCore.h:33:17: fatal error: sip.h: No such file or directory
compilation terminated.
make[1]: *** [sipQtCoreQTimer.o] Error 1
make[1]: Leaving directory `/home/yanwang/Downloads/PyQt-x11-gpl-4.11/QtCore'
make: *** [sub-QtCore-make_default-ordered] Error 2
root@ubuntu:/home/yanwang/Downloads/PyQt-x11-gpl-4.11# 

Файлы SIP установлены в следующем каталоге:

/home/iriswang/Downloads/sip-4.16.1

Пока файлы PyQt находятся в каталоге:

/home/iriswang/Downloads/PyQt-x11-gpl-4.11

Я настроил переменную среды так, чтобы она содержала каталог sip:

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/iriswang/Downloads/sip-4.16.1:/home/iriswang/Qt5.3.1/5.3/gcc_64/bin

Однако похоже, что он все еще не может найти файл sip.h. Любая идея, что я могу сделать? Кстати, я установил пакет python-dev, так что это не должно быть из-за этого. И я проверил, успешно ли установлен sip, вроде тоже все в порядке:**

root@ubuntu:/home/iriswang/Downloads# sip -h
Usage:

    sip [-h] [-V] [-a file] [-b file] [-B tag] [-c dir] [-d file] [-e] [-g] [-I dir] [-j #] [-k] [-m file] [-o] [-p module] [-P] [-r] [-s suffix] [-t tag] [-T] [-w] [-x feature] [-X id:file] [-z file] [file]
where:
    -h          display this help message
    -V          display the sip version number
    -a file     the name of the QScintilla API file [default not generated]
    -b file     the name of the build file [default none generated]
    -B tag      add tag to the list of timeline backstops
    -c dir      the name of the code directory [default not generated]
    -d file     the name of the documentation file (deprecated) [default not generated]
    -e          enable support for exceptions [default disabled]
    -g          always release and reacquire the GIL [default only when specified]
    -I dir      look in this directory when including files
    -j #        split the generated code into # files [defaul
...

Большое Вам спасибо!**


person user3803631    schedule 04.07.2014    source источник
comment
Я только что решил аналогичную проблему, пытаясь собрать PyQt4 против Qt5 (не смог найти sip.h) в OS X. Оказалось, что моя установка sip была бесполезной, и хотя sip.h существовал, это была символическая ссылка, ведущая к ничего (cp: /usr/local/include/sip.h: Too many levels of symbolic links). Можете ли вы подтвердить, что у вас есть рабочий sip.h в вашем каталоге include?   -  person Snorfalorpagus    schedule 01.03.2015


Ответы (1)


Кажется, это обычная проблема при установке PyQt для Ubuntu. Мое исследование показало два возможных решения того, как это можно исправить.

(1) Вам необходимо обновить заголовок Python в файлах Makefile, чтобы убедиться, что вы связаны с /usr/include/python2.7 вместо /usr/local/include/python2.7. См. эту ссылку для простого исправления:

Неустранимая ошибка при компиляции PyQt5: Python.h не существует

(2) Вы можете установить PyQt4.10 вместо PyQt4.11. Другие онлайн-пользователи сообщают, что PyQt4.11 не будет установлен правильно. Смотрите эту ссылку здесь для получения дополнительной информации:

http://iqbalnaved.wordpress.com/2014/05/31/installing-pyqt4-for-python-2-7-6-in-virtual-environement-in-ubuntu-14-04/

Я бы порекомендовал № 1, так как вы должны использовать последнюю версию PyQt. Обязательно проведите дополнительные исследования, так как я считаю, что ваша проблема не уникальна.

person rsk22    schedule 04.07.2014