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

Reply via email to