Shu*_*uan 43 ipython jupyter-notebook
我想从另一个ipython-notebook导入一个func.说,
common_func.ipnb 具有 def func_a()
当我创建一个新笔记本时,如何func_a从另一个笔记本中访问哪个笔记本,但是在同一个文件夹和相同的ipython实例中?
谢谢!
小智 28
当你启动ipython时,使用--script标志:例如
ipython notebook --script
Run Code Online (Sandbox Code Playgroud)
然后,每当您保存笔记本"common_func.ipnb"时,它还会创建一个名为"common_func.py"的文件.您可以使用导入函数
from common_func import func_a
Run Code Online (Sandbox Code Playgroud)
如果更改common_func笔记本,则可能需要使用
reload()
Run Code Online (Sandbox Code Playgroud)
yel*_*cin 23
现在有一个专门的功能来实现这个nbimporter- 通过pip安装.
用法:
import nbimporter
import notebookName as name
name.functionName()
Run Code Online (Sandbox Code Playgroud)
如果你更新notebookName .ipynb然后重新加载:
reload(name)
Run Code Online (Sandbox Code Playgroud)
或者这对于Python 3(默认情况下不包括重载):
from importlib import reload
reload(name)
Run Code Online (Sandbox Code Playgroud)
Jak*_*kob 12
在最近讨论的IPython邮件列表中,请参见此处.最后(这里),找到了一个示例笔记本,它显示了从其他笔记本导入代码的方法.这个笔记本可以在examples/notebooks目录中找到,看起来像这样.您只需定义NotebookLoader和NotebookFinder类,如笔记本中所示.我试过IPython 1.1.0,它运行正常!
Dan*_*bos 11
另一种选择是ipynb.一个很好的好处nbimporter是它可以只导入定义,而不执行其余的代码.在这一点上它是相当新的(0.5).
pip install ipynb
Run Code Online (Sandbox Code Playgroud)
然后:
import ipynb.fs.defs.my_other_notebook as other
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28002 次 |
| 最近记录: |