I've just been taking a look at pyCxx, and it's looks quite nice.
I notice that in Objects.hxx, there's lot's of code snippets that look like:
            if (PyErr_Occurred()) throw Exception();
Would it be better to call a function that interrogates the exeception status, and throws an exception of the appropriate derived type? That way you could catch more specifically in the C++ code.
Also, is there a reason why Exception doesn't derive from std::exception?