[ITK-users] Suggestions about Python wrapping of cpp project

Satyananda Kashyap ksatyananda at gmail.com
Thu Jul 24 11:41:00 EDT 2014


Hi Mickha,

When using SWIG I read that it cannot handle nested classes and that the
interface classes would be needed to expose them separately to python. So I
did actually try to use the interface file pipeline designed for ITK  with
gccxml to see if I could exposes the classes I had written. I am using a
Visual Studio 2010 build. I had two main issues with it :

1. gccxml does not seem to be compatible with versions beyond VS2008. Now I
wasn't sure if redoing my full cpp development in VS2008 would be a good
idea. I could not find a workaround for this (Hence my attempt to try and
use boost.python).

2. Also I needed to modify the interface files so that the other packages
dependencies (i.e. VTK and OpenCV) could also work. I was not sure how to
do that.

Any suggestions on how/where I could start modifying. I like the fact that
I will be able to automate the process and not write any interface files
once I can get it working.

Thanks,
Regards,
Kashyap


On Thu, Jul 24, 2014 at 3:54 AM, Michka Popoff <michkapopoff at gmail.com>
wrote:

> Hi
>
> I am currently maintaining the Python part of ITK, but I don’t know if I
> can help you. I just started with this some time ago and can not really
> compare it to the boost python method as I don’t know it.
> There is an old (but outdated) discussion about boost and swig here [1].
> But this was written for swig 1.34, and now we already have swig 3.0.2,
> which brought a lot of improvements.
>
> Swig has been under heavy development lately. What I find nice with Swig
> is that you get other languages for free, it does not only support python
> but also Java, Ruby, TCL, … (you will need to write some code for this
> support though).
> The Swig method is nice once you automatized your process. Depending on
> the c++ code you wrote, you don’t even need to write interface files for
> Swig.
> For ITK, we have a small pipeline which reads the c++ code with gccxml,
> and uses a python script [3] (which uses pygccxml) to create interface
> files from the xml files.
>
> What problems did you encounter when trying the Swig route ? Maybe I can
> help.
>
> Michka
>
> [1] https://dev.lsstcorp.org/trac/wiki/SwigVsBoostPython
> [2] https://github.com/swig/swig
> [3]
> https://github.com/InsightSoftwareConsortium/ITK/blob/master/Wrapping/Generators/SwigInterface/igenerator.py
>
> On 23 juil. 2014, at 17:11, Satyananda Kashyap <ksatyananda at gmail.com>
> wrote:
>
> > Hello,
> >
> > I am looking for your expert opinions here. I have a relatively large
> C++ project I am working on which uses ITK mainly (hence the question here)
> and to some extent VTK and OpenCV. I do think that my code is fairly well
> written. I was thinking of wrapping my code to python using either SWIG or
> boost.python. Here are my questions :
> >
> >
> > 1. I am led to believe that prototyping and code development is much
> faster in Python. Given that I have such a big cpp base code is it really
> worth the effort to wrap into python and then continue there.
> >
> > 2. From what I have read ITK uses SWIG wrappings for wrapping into
> Python while VTK uses the boost.python route. My initial attempts with both
> have been relatively unsuccessful. Any opinion on which one is more user
> friendly/better when I have to wrap my own custom classes which use a
> combination of both ITK and VTK in them.
> >
> > 3. Any suggestion on a road map as to how to proceed. I am not sure at
> what base class level I should wrap them and rewrite the dependencies in
> python.
> >
> > Thanks,
> > Regards,
> > Kashyap
> > _____________________________________
> > Powered by www.kitware.com
> >
> > Visit other Kitware open-source projects at
> > http://www.kitware.com/opensource/opensource.html
> >
> > Kitware offers ITK Training Courses, for more information visit:
> > http://www.kitware.com/products/protraining.php
> >
> > Please keep messages on-topic and check the ITK FAQ at:
> > http://www.itk.org/Wiki/ITK_FAQ
> >
> > Follow this link to subscribe/unsubscribe:
> > http://public.kitware.com/mailman/listinfo/insight-users
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/insight-users/attachments/20140724/c3a3fa6e/attachment.html>


More information about the Insight-users mailing list