[C++-sig] question using python as library code called from C++

Liang, James jliang at sandia.gov
Fri May 28 18:14:49 CEST 2004


> -----Original Message-----
> Liang, James wrote:
> > Hi,
> >
> > I have an existing C++ program that I'd like to extend by using
> > Python. Ideally, I would like to call an init function to initialize
> > Python-side data structures, and then simply call Python 
> functions as
> > though they were library functions from some other C++ module.
> 
> You'll need some machinery to convert args to Python and results back.
> 
> > What is the most appropriate way to do this?
> 
> boost.python library (of cause ;))
> 
> > What should I do?
> 
> Try to extend python with your library data structures first.
> You'll get a python extension module to call it from python.
> After that works you can embed python interpreter in you c++ lib, but
> it will load you ext. module to do conversion.
> 
> HTH,
> Mike
> 

I think I miscommunicated the degree to which I'm lost.  I looked at
boost.python before I posted, naturally, but it provides
a solution to a problem I'll encounter AFTER I get my current problem
resolved.

My problem is that I don't understand how to get the darn invocation from
C++ to python at all.  
All of the examples I've seen so far assume:
   1. That I somehow magically already have a pointer to a python function
and can use
        PyObject_CallObject
   
  or
  2. That all I want to do is run a single command like
     PyRun_SimpleString("print pow(2,3"); 
     (which can't return me an object)

  or 

  3.  That I ALREADY have pointers to these other objects that I can use for
  a call like PyRun_String


The best documentation I've found so far is just at
http://docs.python.org/api/veryhigh.html, which doesn't really
describe how incorporate the python calls into a piece of code.   Anyone
have any good code samples or links?


James 






More information about the Cplusplus-sig mailing list