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

Я пытаюсь установить PyQt5 на свою коробку Ubuntu 12.04. Так что после загрузки отсюда я разобрал его, побежал python configure.py а также make, Сделайте однако, результаты в следующем:

cd qpy/ && ( test -f Makefile || /opt/qt5/bin/qmake /home/kram/Downloads/PyQt-gpl-5.0/qpy/qpy.pro -o Makefile ) && make -f Makefile 
make[1]: Map '/home/kram/Downloads/PyQt-gpl-5.0/qpy' is entered
cd QtCore/ && ( test -f Makefile || /opt/qt5/bin/qmake /home/kram/Downloads/PyQt-gpl-5.0/qpy/QtCore/QtCore.pro -o Makefile ) && make -f Makefile 
make[2]: Map '/home/kram/Downloads/PyQt-gpl-5.0/qpy/QtCore' is entered
g++ -c -pipe -fno-strict-aliasing -O2 -Wall -W -fPIC -D_REENTRANT -DQT_NO_DEBUG -DQT_CORE_LIB -I/opt/qt5/mkspecs/linux-g++ -I. -I. -I../../QtCore -I/usr/local/include/python2.7 -I/opt/qt5/include -I/opt/qt5/include/QtCore -I. -o qpycore_chimera.o qpycore_chimera.cpp
qpycore_chimera.cpp:21:20: fatal error: Python.h: File or folder does not exist
compilation terminated.
make[2]: *** [qpycore_chimera.o] Error 1
make[2]: Map '/home/kram/Downloads/PyQt-gpl-5.0/qpy/QtCore' is left
make[1]: *** [sub-QtCore-make_first] Error 2
make[1]: Map '/home/kram/Downloads/PyQt-gpl-5.0/qpy' is left
make: *** [sub-qpy-make_first-ordered] Error 2

(Я перевел некоторые части сообщения об ошибке с голландского на английский, так что некоторые слова могут немного отличаться от обычной формулировки..)

Кто-нибудь в чем здесь проблема? Где может быть соответствующий файл Python.h?

4 ответа

Решение

Проблема в том, что путь включения для всех заголовков Python в каждом Makefile будет указывать на /usr/local/include/python2.7, который должен был быть /usr/include/python2.7

Есть 2 возможных решения для этого. Либо вы можете изменить все вхождения этого в каждом Makefile, либо вы можете создать символическую ссылку на это местоположение

sudo ln -s /usr/include/python2.7 /usr/local/include/python2.7

Теперь вы можете запустить make

sudo apt-get install python-dev

Вы пропустили заголовочные файлы Python.

Проблема в том, что PyQt предполагает, что вы не используете управляемый питон вашего дистрибутива, и вместо этого по умолчанию ищет sip in /usr/local/include/python2.7,

К счастью, configure.py предоставляет опции для переопределения Python и включения SIP:

python configure.py --sip-incdir /usr/include/python2.7 py_inc_dir=/usr/include/python2.7

Это решение должно быть предпочтительнее символической ссылки /usr/include/python2.7 в /usr/local/include/python2.7 поскольку это позволит установленному вручную программному обеспечению загрязнять (или устанавливать поврежденные пакеты) пути, управляемые дистрибутивом.

Лучше добавить существующие заголовочные файлы в каталог проекта в QTCreator и Anjuta IDE.

Другие вопросы по тегам