iPython: 如何从模块导入新添加的函数?
iPython: How can I import a newly added function from module?
我在 iPython 做了很多互动工作。目前,我正在使用 Jupyter QtConsole。假设我从这个开始:
from myFuncs import func1
然后我去 myFuncs.py 添加一个新函数 func2。如果我试试这个:
from myFuncs import func2
它没看到。大概 myFuncs 以某种方式缓存。我读过 reload
,但它似乎只适用于整个模块,不适用于精心挑选的功能。 autoreload
在这里似乎也无效。有没有办法,除了重新启动内核?
顺便说一句,Spyder 中的 ipython 可以在交互时更改文件。它也非常慢,所以可能相关?
正如@jss367 提到的 here,您可以使用 importlib
和 sys
模块实现此目的:
import importlib
import sys
importlib.reload(sys.modules['myFuncs'])
from myFuncs import func2
我在 iPython 做了很多互动工作。目前,我正在使用 Jupyter QtConsole。假设我从这个开始:
from myFuncs import func1
然后我去 myFuncs.py 添加一个新函数 func2。如果我试试这个:
from myFuncs import func2
它没看到。大概 myFuncs 以某种方式缓存。我读过 reload
,但它似乎只适用于整个模块,不适用于精心挑选的功能。 autoreload
在这里似乎也无效。有没有办法,除了重新启动内核?
顺便说一句,Spyder 中的 ipython 可以在交互时更改文件。它也非常慢,所以可能相关?
正如@jss367 提到的 here,您可以使用 importlib
和 sys
模块实现此目的:
import importlib
import sys
importlib.reload(sys.modules['myFuncs'])
from myFuncs import func2