IPython notebook:如何重新加载特定Python文件中的所有模块?

我在一个文件中定义了很多模块,并从myFile import *添加到我的i
python笔记本的第一行,这样我就可以将它用作这个笔记本中其他部分的依赖项.

目前我的工作流程是:

>修改myFile
>重启Ipython内核
>重新运行Ipython中的所有代码.

有谁知道是否有办法重新加载myFile中的所有模块而无需重启Ipython内核?谢谢!

最佳答案 来自ipython文档:

In [1]: %load_ext autoreload

In [2]: %autoreload 2

In [3]: from foo import some_function

In [4]: some_function()
Out[4]: 42

In [5]: # open foo.py in an editor and change some_function to return 43

In [6]: some_function()
Out[6]: 43

您还可以通过执行以下操作将自动重新加载配置为自动执行:
ipython个人资料创建

并将以下内容添加到〜/ .config / ipython / profile_default / ipython_config.py中

c.InteractiveShellApp.extensions = ['autoreload']
c.InteractiveShellApp.exec_lines = ['%autoreload 2']
c.InteractiveShellApp.exec_lines.append('print("Warning: disable autoreload in ipython_config.py to improve performance.")')

注意:如果重命名函数,则需要重新运行import语句

点赞