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,您可以使用importlib
和sys
模块实现此目的:
import importlib
import sys
importlib.reload(sys.modules['myFuncs'])
from myFuncs import func2
【讨论】:
以上是关于iPython:如何从模块中导入新添加的功能?的主要内容,如果未能解决你的问题,请参考以下文章
在 ipython/Jupyter notebook 中导入 scikit-learn
如何在 Android Studio 中导入模块而不创建副本
TensorFlow 在 Python CLI 和 IPython CLI 中导入,但不在 IPython QtConsole 中