This is a bit of a hack: when the shared library is loaded,
the module name is "package.module", but the module calls
- Py_InitModule*() with just "module" for the name. The shared
+ PyModule_Create*() with just "module" for the name. The shared
library loader squirrels away the true name of the module in
- _Py_PackageContext, and Py_InitModule*() will substitute this
+ _Py_PackageContext, and PyModule_Create*() will substitute this
(if the name actually matches).
*/
if (_Py_PackageContext != NULL) {
{NULL, NULL}
};
+static struct PyModuleDef examplemodule = {
+ PyModuleDef_HEAD_INIT,
+ "example",
+ "example module doc string",
+ -1,
+ example_methods,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+};
+
PyMODINIT_FUNC
-initexample(void)
+PyInit_example(void)
{
- Py_InitModule("example", example_methods);
+ return PyModule_Create(&examplemodule);
}