Le 15 nov. 2011 à 16:08, Wichert Akkerman a écrit : > On 11/15/2011 03:51 PM, Jérôme Laheurte wrote: >> Le 15 nov. 2011 à 15:24, Jim Bosch a écrit : >> >>> On Nov 15, 2011 8:53 AM, "Olivier Voyer"<olivier.vo...@gmail.com> wrote: >>>> Hi everyone, >>>> >>>> Is it possible to have multiple modules linking to one single pyd file? >>>> I'm using SWIG with VS2010 and I can't find a way of doing that. >>>> >>> I believe this is not supported by the Python C-API itself, regardless of >>> what wrapper generator or library you use. The name of the module import >>> function needs to be related to the loadable module file name, and you >>> generally can't have two functions for which that's true. >> But you can put several submodules in an extension module, as a workaround >> (see code below). I always wondered if that was possible with boost::python >> or SWIG ? > > You can. For example: > > > void exportModule1() { > object module(handle<>(borrowed(PyImport_AddModule("mypkg.module1")))); > scope().attr("module1") = module. > scope module_scope = module; > > // put your def/class_/etc things here > } > > void exportModule2() { > object module(handle<>(borrowed(PyImport_AddModule("mypkg.module2")))); > scope().attr("module2") = module. > scope module_scope = module; > > // put your def/class_/etc things here > } > > void export() { > object package = scope(); > package.attr("__path__") = "mypkg"; > exportModule1(); > exportModule2(); > }
Nice, thanks. I'll keep this around. _______________________________________________ Cplusplus-sig mailing list Cplusplus-sig@python.org http://mail.python.org/mailman/listinfo/cplusplus-sig