IPython / jupyter notebook

时间:2015-08-30 22:08:15

标签: python import ipython ipython-notebook jupyter

我编写了自己的模块,其结构如下:

mymodule/
├── __init__.py
├── part1.py
├── part2.py
├── part3.py
└── part4.py

为了测试我的模块,我使用的是IPython和/或jupyter notebook(以前的Ipython Notebook)。像往常一样,我像

一样进行模块导入
import mymodule

我们假设我在part2.py编辑了一些代码,并希望使用我的模块的更新版本。首先,我认为只需通过import mymodule重新导入模块即可完成工作,但事实并非如此。要完全重新加载模块,我必须关闭IPython的shell或重新启动jupyter的内核,然后通过导入mymodule再次启动。

但是,在docs,IPython提供了一个名为autoreload的自动更新功能,它提供了不同的模式,可以按如下方式激活:

%load_ext autoreload
%autoreload 1
%aimport mymodule

使用我的两个代码段,我正在导入mymodule

%load_ext autoreload
%autoreload 1
%aimport mymodule

import mymodule

# let's do something with the module here

然而,即使激活了autoreload 1autoreload 2,IPython和jupyter都没有做我期望他们做的事情,我仍然要退出IPython的shell或重启jupyter' s内核,以便使用part2.py的编辑代码mymodule

我做错了什么?似乎我没有明白这应该如何运作。

1 个答案:

答案 0 :(得分:4)

%autoreload 1更改为%autoreload 2,例如dashesy说的旧版本或错误。