我想从另一个 ipython-notebook 导入一个函数。说,
common_func.ipnb
有def func_a()
当我创建一个新笔记本时,如何访问func_a
来自另一个笔记本但在同一个文件夹和同一个 ipython 实例中的笔记本?
我想从另一个 ipython-notebook 导入一个函数。说,
common_func.ipnb
有def func_a()
当我创建一个新笔记本时,如何访问func_a
来自另一个笔记本但在同一个文件夹和同一个 ipython 实例中的笔记本?
当您启动 ipython 时,使用 --script 标志:例如
ipython notebook --script
然后,每当您保存笔记本“common_func.ipnb”时,它也会创建一个名为“common_func.py”的文件。您可以通过使用从中导入函数
from common_func import func_a
如果您更改 common_func 笔记本,您可能需要使用
reload()
现在有一个专门的功能来实现这一点nbimporter
- 通过 pip 安装。
用法:
import nbimporter
import notebookName as name
name.functionName()
如果你更新notebookName .ipynb 然后重新加载:
reload(name)
或者对于 Python 3(默认情况下不包括重新加载):
from importlib import reload
reload(name)
另一种选择是ipynb
。一个很好的好处nbimporter
是它可以只导入定义,而不执行其余的代码。在这一点上它是相当新的(0.5)。
pip install ipynb
接着:
import ipynb.fs.defs.my_other_notebook as other
importnb是一个选项。它具有一些不错的功能,例如模糊匹配,可帮助您找到笔记本并帮助导入名称通常会出现问题的笔记本,