diff options
author | Georg Brandl <georg@python.org> | 2008-12-09 23:48:44 (GMT) |
---|---|---|
committer | Georg Brandl <georg@python.org> | 2008-12-09 23:48:44 (GMT) |
commit | acc68cc2b3e167ccc992be2ad616a5de0a04ac6e (patch) | |
tree | 3e6685e933b9acffd07c328722cfd84303f60308 /Doc/extending | |
parent | a872787f5fb8fec80a8cb9318154485daafcea7e (diff) | |
download | cpython-acc68cc2b3e167ccc992be2ad616a5de0a04ac6e.zip cpython-acc68cc2b3e167ccc992be2ad616a5de0a04ac6e.tar.gz cpython-acc68cc2b3e167ccc992be2ad616a5de0a04ac6e.tar.bz2 |
#4592: fix embedding example with new C API changes.
Diffstat (limited to 'Doc/extending')
-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:: |