Using exceptions in defined in an extension module inside another extension module

Floris Bruynooghe floris.bruynooghe at
Wed Dec 24 15:56:21 CET 2008


If I have an extension module and want to use an exception I can do by
declaring the exception as "extern PyObject *PyExc_FooError" in the
object files if I then link those together inside a module where the
module has them declared the same (but no extern) and then initialises
them in the PyMODINIT_FUNC using PyErr_NewException.

What I can't work out however is how to then be able to raise this
exception in another extension module.  Just defining it as "extern"
doesn't work, even if I make sure the first module -that creates the
exception- gets loaded first.  Because the symbol is defined in the
first extension module the dynamic linker can't find it as it only
seems to look in the main python executable for symbols used in
dlloaded sofiles.

Does anyone have an idea of how you can do this?


More information about the Python-list mailing list