【问题标题】:reload Python module within Jupyter notebook (without autoreload)在 Jupyter 笔记本中重新加载 Python 模块(不自动重新加载)
【发布时间】:2018-09-19 07:51:37
【问题描述】:

我有以下文件夹结构

project/
  src/
    __init__.py
    mymodule.py
  mynotebook.ipynb

mynotebook 内,我可以使用标准公式from src.mymodule import * 导入mymodule。修改mymodule 并尝试在不停止内核的情况下重新导入它时会弹出问题。我正在关注this 的讨论,但它不起作用。 (蟒蛇版本:3.3.5)

from imp import reload 
reload(src.mymodule) # also reload(mymodule)

上面的代码失败并显示消息name 'src' is not defined(也是name 'mymodule' is not defined)。我不能使用ipythonautoreload,因为我没有安装它的权限。

谢谢!

【问题讨论】:

    标签: python jupyter-notebook


    【解决方案1】:

    您还需要导入src,然后导入reload(src.mymodule)

    from src import mymodule
    import src
    # Change in mymodule
    reload(src.mymodule)
    

    【讨论】:

    • python3 快速说明:使用 importlib.reload
    • @JamesOwers BTW,这些魔法命令在 Jupyter 笔记本中有效吗?如%autoload 2?
    【解决方案2】:

    这修饰了 Python3 文档 @https://docs.python.org/3/library/importlib.html

    中 James Owers 的评论

    这是我的模块导入,当我编辑模型时我需要重新加载它。

    import src.project.model as Mdl

    这给了我们重载功能

    from importlib import reload

    .. 当你想在单元格中重新加载你的模块时

    reload(Mdl)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-08
      • 1970-01-01
      • 2012-10-19
      • 2010-12-26
      • 2015-02-07
      • 2016-09-14
      • 2016-02-25
      • 2016-05-04
      相关资源
      最近更新 更多