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