embedding interactive python interpreter

Mark Hammond mhammond at skippinet.com.au
Sun Mar 27 18:21:27 EDT 2011


On 28/03/2011 5:28 AM, Eric Frederich wrote:
> I'm not talking about the documentation for sys.exit()
> I'm talking about the documentation for Py_Main(int argc, char **argv)
>
> http://docs.python.org/c-api/veryhigh.html?highlight=py_main#Py_Main
>
> This C function never returns anything whether in the interpreter I
> type "exit(123)" or "sys.exit(123)".
> I cannot call any of my C cleanup code because of this.

I think there is a bug in that documentation - the paragraph:

  Note that if an otherwise unhandled SystemError is raised, this
  function will not return 1, but exit the process, as long as
  Py_InspectFlag is not set.

Looks like it should refer to SystemExit, not SystemError.  If you check 
out pythonrun.c in handle_system_exit, you will note the behaviour 
described above is exactly what is implemented for SystemExit.

See also http://bugs.python.org/issue6498

HTH,

Mark.



More information about the Python-list mailing list