python脚本是否有办法自动检测它是否以交互方式运行?或者,可以检测是否使用ipython而不是常规的c python可执行文件?检测python脚本在ipython中以交互方式运行时
背景:我的Python脚本通常会在它们中调用exit()。我经常以交互方式运行脚本以进行调试和分析,通常使用ipython。当我以交互方式运行时,我想禁止呼叫退出。
澄清:
假设我有一个剧本,myscript.py,看起来像:
#!/usr/bin/python
...do useful stuff...
exit(exit_status)
有时候,我想运行,我已经开始了IPython的会话中的脚本,说是这样的:
In [nnn]: %run -p -D myscript.pstats myscript.py
在脚本的结束,出口()调用将导致IPython中,同时它挂如果我真的想退出,那么我就可以了。调试时这是一个小问题(对于我来说太小了),但它可能导致分析结果混乱:退出提示包含在配置文件结果中(如果我在开始进行配置文件会话之前启动分析会使分析更加困难) 。
我想要的东西,让我修改我的脚本,所以它看起来像:
#!/usr/bin/python
...do useful stuff...
if is_python_running_interactively():
print "The exit_status was %d" % (exit_status,)
else:
exit(exit_status)
你用`python`获得的标准交互式shell怎么样? – n611x007 2014-08-28 10:22:26