【问题标题】:IPython 0.13: autoreloading modules every time I enter a command?IPython 0.13:每次输入命令时自动重新加载模块?
【发布时间】:2013-05-23 19:29:50
【问题描述】:

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

import my_module
from some_other_module import foo
...

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

假设我对my_module 中的函数barsome_other_module 中的foo 进行了更改。

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

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

【问题讨论】:

    标签: python ipython


    【解决方案1】:

    我建议先使用%load_ext autoreload,然后使用%autoreload?,看看如何使用它。

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

    最后,你也可以在你的IPython profile dir中添加一个.py文件($ ipython locate获取它),放到startup子文件夹中,它会在启动时执行。

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

    【讨论】:

      猜你喜欢
      • 2010-12-26
      • 2016-05-04
      • 1970-01-01
      • 1970-01-01
      • 2016-05-20
      • 2018-12-17
      • 2011-07-18
      • 2022-01-24
      相关资源
      最近更新 更多