2

我将一些 python 函数导入到 Jupyter Lab 笔记本中,然后在笔记本中使用它们。但是我在对函数进行更改然后在 Jupyter Lab 笔记本中重新运行它们之间来回切换。我发现让 Jupyter Lab 使用更新代码的唯一方法是重新启动内核,然后重新运行所有内容。虽然这很好用,但有点麻烦,因为我需要再次运行笔记本中的所有内容。

有没有更好的方法可以让 Jupyter Lab 查看导入函数中的新变化,同时仍保留所有先前设置的变量?

4

2 回答 2

3

您也可以通过将其放在笔记本中来使用重新加载魔法。它会自动重新加载代码。

%reload_ext autoreload
%autoreload 2

唯一可能引起混淆的情况是,如果您实例化一个对象,更改代码然后想知道为什么已经实例化的对象没有新功能。除了这种情况,它运作良好。

于 2018-03-17T12:19:17.110 回答
2

您可以重新加载要从中导入功能的模块。

假设在你的笔记本中你有:

from mymodule import myfunction
myfunction()
# execute old version of myfunction

然后你去换衣服myfunctionmymodule.py重新加载模块:

import importlib
importlib.reload(mymodule)

如果您myfunction()现在调用,将执行新版本。

于 2018-03-16T21:32:46.680 回答