更改时自动重新加载扩展不重新加载

时间:2014-12-15 12:02:42

标签: python ipython

使用的Ipython版本:2.3.1

ipython的自动重新加载扩展并不适合我。我已经看到了这个question,并在我的ipython_config.py中尝试了各种组合,包括:

c.InteractiveShellApp.extensions = ['autoreload']
c.InteractiveShellApp.exec_lines = ['%autoreload 2']

还尝试了一个新选项:

c.TerminalInteractiveShell.deep_reload = True

但似乎没有工作。我也尝试在ipython shell加载扩展:

In [7]: %load_ext autoreload
The autoreload extension is already loaded. To reload it, use:
  %reload_ext autoreload

In [8]: %autoreload 2

所以,似乎扩展已经加载了。但是当我编辑并保存我的文件时,它没有被重新加载(返回我的测试函数的相同旧值)。关于可能出错的任何想法?

1 个答案:

答案 0 :(得分:1)

在ipython 2.3.0

中确认这对我来说非常合适
c = get_config()
c.InteractiveShellApp.exec_lines = ['%autoreload 2']
c.InteractiveShellApp.extensions = ['autoreload']
c.TerminalInteractiveShell.autoindent = False

尝试使用非常简单的测试:

test.py

def print_something():
    print('thing')

IPython的

>>> import test
>>> test.print_something()
thing
>>> # change 'thing' -> 'other'
>>> test.print_something()
other