Неустранимая ошибка при компиляции 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.