Jupyter notebook 将新代码导入Jupyter实验室

Jupyter notebook 将新代码导入Jupyter实验室,jupyter-notebook,jupyter,jupyter-lab,Jupyter Notebook,Jupyter,Jupyter Lab,我正在将一些python函数导入Jupyter实验室笔记本,然后在笔记本中使用它们。但是我在对函数进行修改,然后在Jupyter实验室笔记本中重新运行它们之间来回切换。我发现让Jupyter实验室使用更新代码的唯一方法是重新启动内核,然后重新运行所有内容。虽然这样做很好,但有点麻烦,因为我需要再次运行笔记本中的所有内容 有没有更好的方法让Jupyter Lab在保留所有以前设置的变量的同时查看导入函数中的新更改?您可以重新加载从中导入函数的模块 假设您的笔记本中有: from mymodule

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


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

您可以重新加载从中导入函数的模块

假设您的笔记本中有:

from mymodule import myfunction
myfunction()
# execute old version of myfunction
然后在
mymodule.py
中更改
myfunction
。重新加载模块:

import importlib
importlib.reload(mymodule)

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

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

%reload_ext autoreload
%autoreload 2
唯一可能引起混淆的是,如果您实例化了一个对象,更改代码,然后想知道为什么已经实例化的对象没有新函数。除此之外,它工作得很好