On 28/03/2011 2:06 PM, Eric Frederich wrote:
I'm not sure that I know how to run this function in such a way that
it gives me an interactive session.
I passed in stdin as the first parameter and NULL as the second and
I'd get seg faults when running exit() or even imnport sys.
I don't want to pass a file. I want to run some C code, start an
interactive session, then run some more C code once the session is
over, but I cannot find a way to start an interactive Python session
within C that won't exit pre-maturely before I have a chance to run my
cleanup code in C.
Instead of calling Py_Main, arrange for the following code to be executed:
import code
try:
code.interact()
except SystemExit:
pass
print "Done!"
If you save that as a script and run it, you will see that when you call
quit() or use Ctrl+D, the "Done!" is printed (so the exception is
caught) and things will return normally (albeit without any return code
that may have been specified in the SystemExit exception). If you
arrange to call that code in your app (either by importing it as a
module of even by calling PyRun_SimpleString) things should work as you
need.
HTH,
Mark
--
http://mail.python.org/mailman/listinfo/python-list