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
)并且它适用于大多数情况。只有多重继承很麻烦。