[PyQt] PyQt 4.4.2 / SIP 4.7.6 in custom directories : API version mismatch (3.6 instead of 3.7)

Phil Thompson phil at riverbankcomputing.com
Fri May 30 08:58:03 BST 2008


On Friday 30 May 2008 8:39:05 am jbd wrote:
> Hello everybody !
>
> I ran into some troubles with my Qt installation.
>
> Here is my setup. I'm running a debian etch with the official
> repositories. I have Qt 4.2 and PyQt 4.0 bindings, SIP 4.4.5 and
> python-sip4 4.7.4 installed on my system using apt/aptitude.
>
> I've decided to build a static Qt 4.4 in my home directory :
>
> --------------------------------------------------------------------------
> export STATIC_LIBS_DIRECTORY=MY_DIRECTORY
> ./configure -static -prefix=$STATIC_LIBS_DIRECTORY mycompilationoptions
> make && make install
> --------------------------------------------------------------------------
>
> => the examples are running fine
>
> I've compiled and installed SIP 4.7.6 in the same directory :
>
> --------------------------------------------------------------------------
> python configure.py -k -b $STATIC_LIBS_DIRECTORY/bin -d
> $STATIC_LIBS_DIRECTORY/lib/python2.4/site-packages -e
> $STATIC_LIBS_DIRECTORY/include/python2.4 -v
> $STATIC_LIBS_DIRECTORY/share/sip
> --------------------------------------------------------------------------
>
> Here is an excerpt from the log seams fine to me :
>
> --------------------------------------------------------------------------
> Qt v4.4.0 free edition is being used.
> SIP 4.7.6 is being used.
> The Qt header files are in /home/jbd/dol/dolstatic/include.
> The static Qt libraries are in /home/jbd/dol/dolstatic/lib.
> The Qt binaries are in /home/jbd/dol/dolstatic/bin.
> The Qt mkspecs directory is in /home/jbd/dol/dolstatic.
> These PyQt modules will be built: QtCore QtGui QtHelp QtNetwork QtOpenGL
> QtScript QtSql QtSvg QtTest QtWebKit QtXml QtXmlPatterns QtAssistant.
> The PyQt Python package will be installed in
> /home/jbd/dol/dolstatic/lib/python2.4/site-packages.
> The Designer plugin will be installed in
> /home/jbd/dol/dolstatic/plugins/designer.
> The PyQt .sip files will be installed in
> /home/jbd/dol/dolstatic/share/sip/PyQt4.
> pyuic4, pyrcc4 and pylupdate4 will be installed in
> /home/jbd/dol/dolstatic/bin.
> --------------------------------------------------------------------------
>
> I've compiled PyQt4 4.4.2 in the same directory using the consolidate
> option :
>
> --------------------------------------------------------------------------
> export CPATH=$STATIC_LIBS_DIRECTORY/include:$CPATH
> export
> PYTHONPATH=$STATIC_LIBS_DIRECTORY/lib/python2.4/site-packages/:$PYTHONPATH
> export PATH=$STATIC_LIBS_DIRECTORY/bin:$PATH
> python configure.py --confirm-license --consolidate -b
> $STATIC_LIBS_DIRECTORY/bin -d
> $STATIC_LIBS_DIRECTORY/lib/python2.4/site-packages -p
> $STATIC_LIBS_DIRECTORY/plugins
> --------------------------------------------------------------------------
>
> Compilation and installation run without problems.
>
> The import PyQt4 runs fine, but when i try to import a module, it fails :
> --------------------------------------------------------------------------
> $ python -c "import PyQt4"
> $ python -c "from PyQt4 import QtCore"
> Traceback (most recent call last):
>   File "<string>", line 1, in ?
> RuntimeError: the sip module supports API v3.0 to v3.6 but the
> PyQt4.QtCore module requires API v3.7
> --------------------------------------------------------------------------
>
> I've just found that when i'm running an interactive shell, if a "double
> import" the module, it runs fine. Weird.
>
> --------------------------------------------------------------------------
> $ export
> PYTHONPATH=$STATIC_LIBS_DIRECTORY/lib/python2.4/site-packages/:$PYTHONPATH
> $ python
> Python 2.4.4 (#2, Apr 15 2008, 23:43:20)
> [GCC 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)] on linux2
> Type "help", "copyright", "credits" or "license" for more information.
>
> >>> from PyQt4 import QtCore
>
> Traceback (most recent call last):
>   File "<stdin>", line 1, in ?
> RuntimeError: the sip module supports API v3.0 to v3.6 but the
> PyQt4.QtCore module requires API v3.7
>
> >>> from PyQt4 import QtCore
> >>> QtCore.qVersion()
>
> '4.4.0'
> --------------------------------------------------------------------------
>
> I would be happy with any suggestions =)

The QtCore module is compiled with the later version of SIP but the sip module 
is from the earlier version.

Phil


More information about the PyQt mailing list