Index: Doc/extending/embedding.rst =================================================================== --- Doc/extending/embedding.rst (revision 67681) +++ Doc/extending/embedding.rst (working copy) @@ -223,11 +223,17 @@ 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. Index: Doc/extending/extending.rst =================================================================== --- Doc/extending/extending.rst (revision 67681) +++ Doc/extending/extending.rst (working copy) @@ -342,7 +342,7 @@ 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::