当autoreload失败时,如何阻止ipython中的代码执行?

时间:2017-02-07 17:09:12

标签: python ipython

在ipython中,我在配置文件中启用了自动加载功能。通常,这会获取我的代码中的任何更改,ipython将执行新编译的版本。但是,如果代码中存在语法错误,我会改为使用旧版本。有时候发生这种情况并不明显,这非常令人困惑。在自动重载期间出现错误时,如何防止代码重新运行?或者,我怎样才能更明显地发现这样的错误?

示例:考虑此脚本

from __future__ import print_function

def do():
    for i in xrange(50):
        print('lines that obscure the view')
    print()

    print('Old version')

我用

调用它
In [1]: import junk

In [2]: junk.do()

生成

...
lines that obscure the view
lines that obscure the view
Old version

现在改为:

from __future__ import print_function

def do():
    for i in xrange(50):
        print('lines that obscure the view')
    print()

    # print('Old version')

    a = 3 * 
    print('New version')

重新运行代码后,自动重载会产生语法错误,然后ipython会快速生成输出,将错误滚动到屏幕上。

...
lines that obscure the view
lines that obscure the view
Old version

我正在使用python 2.7.12和ipython 5.1.0。

0 个答案:

没有答案