From 6e96e5e966385eb006006f768e7b813402f63026 Mon Sep 17 00:00:00 2001 From: Andrew Svetlov Date: Wed, 31 Oct 2012 16:01:09 +0200 Subject: [PATCH] Issue #16370: Mention Py_SetProgramName in example for very high level embedding. --- Doc/extending/embedding.rst | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/Doc/extending/embedding.rst b/Doc/extending/embedding.rst index 4bd01995935..cc4a70e2544 100644 --- a/Doc/extending/embedding.rst +++ b/Doc/extending/embedding.rst @@ -61,6 +61,7 @@ perform some operation on a file. :: int main(int argc, char *argv[]) { + Py_SetProgramName(argv[0]); /* optional but recommended */ Py_Initialize(); PyRun_SimpleString("from time import time,ctime\n" "print 'Today is',ctime(time())\n"); @@ -68,14 +69,18 @@ perform some operation on a file. :: return 0; } -The above code first initializes the Python interpreter with -:c:func:`Py_Initialize`, followed by the execution of a hard-coded Python script -that print the date and time. Afterwards, the :c:func:`Py_Finalize` call shuts -the interpreter down, followed by the end of the program. In a real program, -you may want to get the Python script from another source, perhaps a text-editor -routine, a file, or a database. Getting the Python code from a file can better -be done by using the :c:func:`PyRun_SimpleFile` function, which saves you the -trouble of allocating memory space and loading the file contents. +Function :c:func:`Py_SetProgramName` should be called before +:c:func:`Py_Initialize` to inform the interpreter about paths to +Python run-time libraries. Next initialize the Python interpreter +with :c:func:`Py_Initialize`, followed by the execution of a +hard-coded Python script that prints the date and time. Afterwards, +the :c:func:`Py_Finalize` call shuts the interpreter down, followed by +the end of the program. In a real program, you may want to get the +Python script from another source, perhaps a text-editor routine, a +file, or a database. Getting the Python code from a file can better +be done by using the :c:func:`PyRun_SimpleFile` function, which saves +you the trouble of allocating memory space and loading the file +contents. .. _lower-level-embedding: