0

假设我有一个在 Python 中导入各种模块的脚本。

import my_module
from some_other_module import foo
...

然后我从 IPython 运行这个脚本。

bar假设我对in my_modulefooin的函数进行了更改some_other_module

假设我现在想以交互方式调用 IPython 会话中的任何一个my_module.bar()foo()从我的 IPython 会话中调用。

  1. 当我在执行命令之前调用命令时,有没有办法让 IPython 自动重新加载每个加载的模块?
  2. 如果不是自动的,如何在 IPython 中手动重新加载每个加载的模块而无需显式命名模块?
  3. 最后,有没有办法在我的(启动文件)中设置我的 IPython 会话,ipython_config.py以便它支持这个现成的功能?
4

1 回答 1

3

我建议 a%load_ext autoreload后跟 a%autoreload?看看如何使用它。

您还可以在启动时查看扩展InteractiveShellApp.extensionsInteractiveShellApp.extra_extension配置选项。

最后,您还可以.py在您的 IPython 配置文件目录中添加一个文件($ ipython locate获取它),将其放在startup子文件夹中,它将在启动时执行。

但是有一个限制,不能重新加载 C 模块。

于 2013-05-28T19:32:24.690 回答