iPython:如何从模块中导入新添加的功能?

Posted

技术标签:

【中文标题】iPython:如何从模块中导入新添加的功能?【英文标题】:iPython: How can I import a newly added function from module? 【发布时间】:2020-09-08 10:28:12 【问题描述】:

我在 iPython 中做了很多交互工作。目前,我正在使用 Jupyter QtConsole。假设我从这个开始:

from myFuncs import func1

然后我转到 myFuncs.py 并添加一个新函数 func2。如果我试试这个:

from myFuncs import func2

它没有看到它。大概 myFuncs 以某种方式被缓存。我读过reload,但它似乎只适用于整个模块,而不是樱桃挑选的功能。 autoreload 在这里似乎也无效。除了重新启动内核之外,有没有办法解决?

顺便说一句,Spyder 中的 ipython 可以在交互时更改文件。它也非常慢,所以可能相关?

【问题讨论】:

FWIW, this post 提供了一些细节和解决方法(使用完全限定名称),但没有解决方案。 【参考方案1】:

正如@jss367 提到的here,您可以使用importlibsys 模块实现此目的:

import importlib
import sys
importlib.reload(sys.modules['myFuncs'])
from myFuncs import func2

【讨论】:

以上是关于iPython:如何从模块中导入新添加的功能?的主要内容,如果未能解决你的问题,请参考以下文章

如何从项目中导入模块[重复]

在 ipython/Jupyter notebook 中导入 scikit-learn

如何向IPython Notebook中导入.py文件

VBA从添加到工作簿中导入udf模块

如何在 Android Studio 中导入模块而不创建副本

TensorFlow 在 Python CLI 和 IPython CLI 中导入,但不在 IPython QtConsole 中