ipython: exit() 语句未按预期工作

ipython: exit() statement not working as expected

我正在 运行 将脚本写入 ipython (1.2.1),如果不满足特定条件,我需要它停止。我尝试使用 exit() 语句,但它没有按预期运行。

以我调用的以下脚本为例 test.py:

if(True):
    print('Error')
    exit()
print('Still here!')

当我 运行 使用 python test.py 时,我得到:

$python test.py
Error

然后如预期的那样执行终止。

但是如果我使用 run -i test.py 从 ipython 运行 它,那么我得到:

In [1]: run -i test.py
Error
Still here!

最后ipython的执行结束。问题是,在这种情况下,第二个 print 语句仍在执行,而我需要在遇到 exit() 语句时立即终止脚本的执行。

为什么会这样,我怎样才能得到我想要的结果? (我是运行宁python2.7.6)

exit() 单独用于 REPL,并不真正用于脚本。

import sys 之后尝试使用 sys.exit(0),当然