Using exceptions in defined in an extension module inside anotherextension module

F

Floris Bruynooghe

Hello

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?

Thanks
Floris
 
F

Floris Bruynooghe

Christian said:
The answer is so obvious that you are going to bang your head against
the next wall. You have to do exactly the same as you'd do with a pure
Python module: import it. :)

Well, I hope the wall hurts as much as my head...

Great tip, at first I wasn't looking forward to importing the module
in every function where I wanted the exceptions. But then I realised
they are global variables anyway so I could have them as such again
and just assign them in the module init function.

Thanks
Floris
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,764
Messages
2,569,564
Members
45,039
Latest member
CasimiraVa

Latest Threads

Top