3

I'm trying to install PyQt-x11-gpl-4.11 in my ubuntu 13.04 Linux vm, configure-ng.py ran well but when using make, it prompts below error message,**

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# 

The SIP files are installed under below directory:

/home/iriswang/Downloads/sip-4.16.1

While the PyQt files are under directory:

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

I've setup the environment variable so that it contains the sip directory:

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

However, it looks like it still can't find sip.h file. Any idea what I can do? BTW I've installed python-dev package, so it shouldn't be because of that. And I checked whether sip is installed successful, looks like it's OK too:**

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
...

Thank you very much!**

ekhumoro
  • 115,249
  • 20
  • 229
  • 336
user3803631
  • 31
  • 1
  • 2
  • I have just resolved a similar problem trying to build PyQt4 against Qt5 (couldn't find sip.h) on OS X. It turned out my install of sip was no good, and although sip.h existed it was a symbolic link leading to nothing (`cp: /usr/local/include/sip.h: Too many levels of symbolic links`). Can you confirm you have a working `sip.h` in your include directory? – Snorfalorpagus Mar 01 '15 at 11:49

1 Answers1

2

This seems to be a common problem when installing PyQt for Ubuntu. My research showed two possible solutions on how you could fix this.

(1) You need to update your Python header in the Makefiles to make sure that you are linked to /usr/include/python2.7 instead of /usr/local/include/python2.7. See this link for a simple fix:

Fatal error while compiling PyQt5: Python.h does not exist

(2) You can install PyQt4.10 instead of PyQt4.11. Other online users have reported that PyQt4.11 will not install correctly. See this link here for more info:

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

I would recommend #1 as you should be using the latest version of PyQt. Be sure to do some additional research as I believe your problem is not unique.

Community
  • 1
  • 1
rsk22
  • 49
  • 3