[PyQt] Using distutils / setuptools for SIP extensions?

Elvis Stansvik elvstone at gmail.com
Sat May 9 09:03:55 BST 2015


2015-05-09 6:43 GMT+02:00 V. Armando Sole <sole at esrf.fr>:

> Hi,
>
> On 09.05.2015 00:11, Elvis Stansvik wrote:
>
>> Hi all,
>>
>> I'm considering using SIP for an upcoming project.
>> ...
>> If I want to use regular setuptools to build my extension ...
>>
>
> Since it is an upcoming project, have you considered using Cython?
> Inheritance of C++ classes as Python classes is much better handled by sip
> but, if you can minimize inheritance at the Python side, Cython offers what
> you want.
>

Yes, we're already using Cython in a couple of places to interface with
vendor supplied driver blobs. For this project I was considering SIP
though, since it has better support for generating bindings for Qt code
AFAICS.

I realize I should give a bit more background: We're using Crossbar [1], a
WAMP [2] router, to tie together some application components written using
Autobahn|Python [3]. A few of those application components are PyQt4
applications, which means we have to use qtreactor [4] to let the Qt event
loop drive the Twisted reactor which Autobahn uses. The project I'm talking
about would be to, instead of using qtreactor to integrate Twisted's
reactor with Qt's event loop, build a minimal WAMP client library on top of
the Qt networking C++ classes, and then create Python bindings for this
library. That's where SIP comes in. The reason we'd build this client
library in C++ and then wrap it, and not Python directly, is that we're
considering re-writing some of these GUI application components in C++, so
we'd want a Qt C++ WAMP library as well.

Hope that clears some things :)

Elvis

[1] http://crossbar.io/
[2] http://wamp.ws/
[3] http://autobahn.ws/python/
[4] https://github.com/ghtdak/qtreactor


> Best regards,
>
> Armando
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.riverbankcomputing.com/pipermail/pyqt/attachments/20150509/b42379da/attachment.html>


More information about the PyQt mailing list