On 06/09/2010 03:11 PM, Charles Solar wrote:
I have a boost python library that I build python scripts with. I am
not embedding python, I think that is worth mentioning right off the bat.
In my C++ library I have a separate thread calling into python
occasionally
If you call Python from C++, why are you saying you are not embedding
Python ? What do you mean by that ?
and I am finding that if the function I call in python has a python
error in it, eg:
def callMe():
crash = "Hello world"
return crash()
When my C++ app calls that I get the error_already_set exception from
boost python. My problem with that is it offers no information from
python like 'Strings are not callable on line 200 in crash.py' So my
question is how can I connect the error_already_set exception on the
other thread to python's exception handler so if python produces an
exception while calling from C++ I get the python exception
information and not just 'error already set'?
Right now you need to use the Python C API to fetch those details (see
http://docs.python.org/c-api/exceptions.html?highlight=pyerr_fetch#PyErr_Fetch).
I keep meaning to write C++ wrappers around that API, but it always
falls off of my (fixed-size) TODO list. Perhaps someone else will beat
me to it ? ;-)
Stefan
--
...ich hab' noch einen Koffer in Berlin...
_______________________________________________
Cplusplus-sig mailing list
Cplusplus-sig@python.org
http://mail.python.org/mailman/listinfo/cplusplus-sig