対話的に実行されているかどうかをpythonスクリプトが自動的に検出する方法はありますか?あるいは、普通のc python実行可能ファイルと比較してipythonが使用されているかどうかを検出できますか?Pythonスクリプトがipythonでインタラクティブに実行されていることを検出する
背景:私のpythonスクリプトは一般に、exit()を呼び出す必要があります。時々、私はスクリプトを対話的にデバッグとプロファイリングのためにipythonで実行します。インタラクティブに実行しているときに、終了する呼び出しを抑制したいと思います。
明確化:時々、私はすでに開始していることをIPythonセッション内でスクリプトを実行するために
#!/usr/bin/python
...do useful stuff...
exit(exit_status)
たい:
私がどのように見えるのスクリプト、myscript.pyをしていると仮定
スクリプトの最後では、exit()を呼び出すと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'で手に入れた標準のインタラクティブシェルはどうですか? – n611x007