On 06/07/2010 01:43 PM, Alan wrote: > Hi there, > > I have a code with a 'exit()' at the end. We run it usually as: > > python2.5 -i code.py > > and if everything is fine, the 'exit()' is called and there's no > interactive terminal. You could instead do something like this:
try: # ... except: import code code.interact() you could even create a stub.py module, like this: import runpy import code import sys try: mod_name = sys.argv[1] mod_globals = {} sys.argv = sys.argv[1:] mod_globals = runpy.run_module(mod_name, run_name='__main__', alter_sys=True) except BaseException, e: mod_globals['e'] = e code.interact(mod_globals) and run it with python2.6 stub.py code_module though it's probably more useful to just use pdb.pm() instead of code.interact here... the debugger is your friend! > > However, doing the same above with python2.6 and I got: > > amadeus[2738]:~/TMP% python2.6 -i thread_ping.py > Traceback (most recent call last): > File "thread_ping.py", line 42, in <module> > exit() > File "/sw/lib/python2.6/site.py", line 334, in __call__ > raise SystemExit(code) > SystemExit: None > >>> > > So, everything is fine except that it ended up in the interactive > python terminal. Is there a way of having the very behaviour I have > with python 2.5 for my code in python 2.6? > > Many thanks in advance, > > Alan > > -- > Alan Wilter S. da Silva, D.Sc. - CCPN Research Associate > Department of Biochemistry, University of Cambridge. > 80 Tennis Court Road, Cambridge CB2 1GA, UK. > >>http://www.bio.cam.ac.uk/~awd28 <http://www.bio.cam.ac.uk/%7Eawd28><< -- http://mail.python.org/mailman/listinfo/python-list