IPython/jupyter笔记本电脑中的自动更新模块

IPython/jupyter笔记本电脑中的自动更新模块,python,import,ipython,ipython-notebook,jupyter,Python,Import,Ipython,Ipython Notebook,Jupyter,我编写了自己的模块,其结构如下: mymodule/ ├── __init__.py ├── part1.py ├── part2.py ├── part3.py └── part4.py 为了测试我的模块,我正在使用IPython和/或jupyter笔记本(以前是IPython笔记本)。像往常一样,我像往常一样导入模块 import mymodule 假设我在part2.py中编辑了一些代码,并希望使用模块的更新版本。首先,我认为只需通过import mymodule重新导入模块就可以了,

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

mymodule/
├── __init__.py
├── part1.py
├── part2.py
├── part3.py
└── part4.py
为了测试我的模块,我正在使用IPython和/或jupyter笔记本(以前是IPython笔记本)。像往常一样,我像往常一样导入模块

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

但是,参考,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
然而,即使激活了
autoreload1
autoreload2
IPython和jupyter都没有做我期望他们做的事情,我仍然必须退出IPython的shell或重新启动jupyter的内核,以便使用
part2.py
的编辑代码,这是
mymodule
的一部分


我做错了什么?似乎我没有理解这应该如何工作。

%autoreload 1
更改为
%autoreload 2
,如dashesy所说,旧版本或bug。

听起来像bug,我使用
%autoreload 2
(实际上我将其添加到
ipython_config.py
)并且它适用于大多数情况。只有多重继承很麻烦。