【问题标题】:autoupdate module in IPython / jupyter notebookIPython / jupyter notebook 中的自动更新模块
【发布时间】:2015-08-30 22:08:14
【问题描述】:

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

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

使用我的两个 sn-ps,我正在像这样导入 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 的内核才能使用编辑后的 ​​part2.py 代码这是mymodule 的一部分。

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

【问题讨论】:

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

标签: python import ipython ipython-notebook jupyter


【解决方案1】:

%autoreload 1 更改为%autoreload 2 就像dashesy 说的那样,旧版本或错误。

【讨论】:

    猜你喜欢
    • 2015-10-15
    • 2017-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多