beginner questions on embedding/extending python with C++

Roman Yakovenko roman.yakovenko at gmail.com
Tue Aug 8 07:24:58 EDT 2006


On 8 Aug 2006 02:28:31 -0700, Qun Cao <quncao at gmail.com> wrote:
> Hi Everyone,
>
> I am a beginner on cross language development. My problem at hand is to
> build a python interface for a C++ application built on top of a 3D
> game engine.  The purpose of this python interface is providing a
> convenient scripting toolkit for the application.

As for me, Boost.Python is the way to go.

Fortunately you are not the first one, and I hope not the last one :-) :

http://language-binding.net/pyplusplus/quotes.html#who-is-using-pyplusplus
1. Python-OGRE
  * http://lakin.weckers.net/index_ogre_python.html
  * http://tinyurl.com/mvj8d

2. http://cgkit.sourceforge.net/ - contains Python bindings for Maya C++ SDK

3. PyOpenSG - https://realityforge.vrsource.org/view/PyOpenSG/WebHome
   The goal of PyOpenSG is to provide python bindings for the OpenSG
   scene graph.

> Since the main program is still going to be the C++ application, I
> guess we need to embedding the python scripts in the C++ code.

Boost.Python is the only tool that provides complete functionality(
extending and
  embedding ). Also I think cgkit is dealing with the problem too.

> But for this to work, the python code needs to know the Player class,
> is it right?

Right.

Does that mean I need to build a python wrapper class for
> Player and "import Player" in the python code?  But because this
> application is built on top of a game engine, Player class inherits
> many classes from there, I cannot possibly wrapping them all, right?

It depends on how much functionality you want to export.

> Also, some global objects are probably needed in this code of adding
> players, how can the python code access them?

Boost.Python provides the functionality you need.

> Btw, if you can point me to any source code of non-trivial projects
> utilizing SWIG/Boost.Python, that would be very helpful.  I found the
> examples on the tutorials are far too simple.

Those are tutorials, they should be simple, right :-) ?

-- 
Roman Yakovenko
C++ Python language binding
http://www.language-binding.net/



More information about the Python-list mailing list