是否可以将Jupyter笔记本动态地嵌入另一个Jupyter笔记本中?

时间:2019-05-07 06:40:48

标签: jupyter-notebook jupyter

我正在用笔记本写科学报告。 我有一个文档(笔记本B),其中有我的完整概述(简介,方法,结果等)。 我想分开笔记本A,但我也想直接在其中一个标题下提及它 是否可以将笔记本A的一部分动态导入到笔记本B中,以便在使用nbviewer时,它们看上去都像一个巨大的文档,但实际上,是一堆单独的笔记本在运行中拼凑在一起的?我希望能够更新笔记本B,并在主笔记本A中也动态更新更改。

我正在管理git存储库中的所有笔记本。

我已经使用基本的超链接语法[](notebookA.ipynb#SectionIWantToLinkTo)设法使笔记本之间的超链接正常工作,但是我想实际引入代码单元,而不仅仅是与它们的超链接。

我希望将不同的工作流程文档(即笔记本)分开放置,以使其更易于管理和运行工作流程,而又无需拥有我当时不在意的工作流程中的所有多余代码。

最终视图将是nbviewer中的超链接文档,因此在Jupyter / git中看起来很丑陋但可以很好地呈现到nbviewer中的解决方案将是合适的。

1 个答案:

答案 0 :(得分:0)

谢谢你在这里问克莱尔。

没有一种本机的方法可以将一个笔记本的内容包含到另一个笔记本中,但是,您可以考虑以下多种选择。

提交前合并

在提交结果之前,使用nbmerge工具将几个笔记本合并到一个单独的笔记本中。

使用笔记本发布工具包 有些项目使用笔记本来发布论文,甚至出版整本书,例如bookbookipypublish。可能比您想要的更加复杂或受限制。

在笔记本之间导入代码

您还可以使用ipynbF5将代码从一个笔记本导入另一个笔记本。您仍将有两个文件,因此不会显示为单个页面,但可以作为一个页面运行,并且它们之间的链接仍然有效。

以另一种方式重组

考虑是否值得将一些不太有趣的代码提取到可重用的%run second_notebook.py文件或模块中并导入。让笔记本专注于您要描述的主要内容。

相关问题