diff options
-rw-r--r-- | Doc/extending/embedding.rst | 10 | ||||
-rw-r--r-- | Doc/extending/extending.rst | 2 |
2 files changed, 9 insertions, 3 deletions
diff --git a/Doc/extending/embedding.rst b/Doc/extending/embedding.rst index e5c7da1..5c4fde8 100644 --- a/Doc/extending/embedding.rst +++ b/Doc/extending/embedding.rst @@ -223,11 +223,17 @@ Python extension. For example:: NULL, NULL, NULL, NULL }; + static PyObject* + PyInit_emb(void) + { + return PyModule_Create(&EmbModule); + } + Insert the above code just above the :cfunc:`main` function. Also, insert the -following two statements directly after :cfunc:`Py_Initialize`:: +following two statements before the call to :cfunc:`Py_Initialize`:: numargs = argc; - PyModule_Create(&EmbModule); + PyImport_AppendInittab("emb", &PyInit_emb); These two lines initialize the ``numargs`` variable, and make the :func:`emb.numargs` function accessible to the embedded Python interpreter. diff --git a/Doc/extending/extending.rst b/Doc/extending/extending.rst index 851e99f..c05bcfd7 100644 --- a/Doc/extending/extending.rst +++ b/Doc/extending/extending.rst @@ -342,7 +342,7 @@ satisfactorily. The init function must return the module object to its caller, so that it then gets inserted into ``sys.modules``. When embedding Python, the :cfunc:`PyInit_spam` function is not called -automatically unless there's an entry in the :cdata:`_PyImport_Inittab` table. +automatically unless there's an entry in the :cdata:`PyImport_Inittab` table. To add the module to the initialization table, use :cfunc:`PyImport_AppendInittab`, optionally followed by an import of the module:: |