Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to use buildout to build Qt, PyQt, and SIP?

Tags:

pyqt

buildout

EDIT: The following buildout.cfg worked to build Qt, PyQt, and SIP


[buildout]
parts =
    pyqt

[pyqt]
recipe = zc.recipe.cmmi
url = http://www.riverbankcomputing.co.uk/static/Downloads/PyQt4/PyQt-x11-gpl-4.8.4.tar.gz
#shared = True
source-directory-contains = configure.py
configure-command = ${buildout:executable} ./configure.py
configure-options = --confirm-license
    -q ${qt:location}/bin/qmake
    -b ${buildout:parts-directory}/pyqt/bin
    -p ${buildout:parts-directory}/pyqt/plugins
    -d ${buildout:parts-directory}/pyqt/lib/
    -v ${sip:location}/share
    --verbose
environment =
    PYTHONPATH=${sip:location}/lib


[sip]
recipe = zc.recipe.cmmi
url = http://www.riverbankcomputing.co.uk/static/Downloads/sip4/sip-4.12.3.tar.gz
# shared = True
source-directory-contains = configure.py
configure-command = ${buildout:executable} ./configure.py
configure-options = 
    -b ${buildout:parts-directory}/sip/bin
    -e ${buildout:parts-directory}/sip/include
    -d ${buildout:parts-directory}/sip/lib
    -v ${buildout:parts-directory}/sip/share

[qt]
recipe = zc.recipe.cmmi
url = http://get.qt.nokia.com/qt/source/qt-everywhere-opensource-src-4.7.3.tar.gz
shared = True
like image 685
Doran Avatar asked Nov 05 '22 21:11

Doran


1 Answers

I suspect you need to tell the PyQT configure where to find the sip libraries and include headers:

[pyqt]
recipe = zc.recipe.cmmi
url = http://www.riverbankcomputing.co.uk/static/Downloads/PyQt4/PyQt-x11-gpl-4.8.4.tar.gz
# shared = True
source-directory-contains = configure.py
configure-command = ${buildout:executable} ./configure.py
configure-options = --confirm-license
    -b ${buildout:parts-directory}/pyqt/bin
    -p ${buildout:parts-directory}/pyqt/plugins
    -d ${buildout:parts-directory}/pyqt/lib/
    -q ${qt:location}/bin/qmake
    -v ${sip:location}/share
    --verbose
environment =
    PYTHONPATH=${sip:location}/lib

Updated: Update my answer to include the PYTHONPATH environment var so configure.py will load the correct sipconfig module.

like image 85
Martijn Pieters Avatar answered Nov 14 '22 16:11

Martijn Pieters