如何在Jupyter Notebook中引入其他笔记本的完整内容(含Markdown)?
如何在Jupyter Notebook中实现类似LaTeX
\include的子Notebook导入功能 你需要的是能同时导入子Notebook中Markdown单元格和**代码单元格(含输出)**的方案,%run确实只执行代码并返回输出,不会处理Markdown。下面是两种可行的解决方法:
方法一:自定义代码实现动态导入
通过nbformat读取子Notebook的结构,逐个渲染不同类型的单元格:
- 先导入依赖库:
import nbformat from IPython.display import display, Markdown, Code
- 编写导入函数:
def include_notebook(notebook_path): # 读取子Notebook文件(使用nbformat v4版本) nb = nbformat.read(notebook_path, as_version=4) for cell in nb.cells: if cell.cell_type == "markdown": # 渲染并显示Markdown内容 display(Markdown(cell.source)) elif cell.cell_type == "code": # 先显示代码单元格内容 display(Code(cell.source, language="python")) # 执行代码并输出结果 exec(cell.source, globals())
- 在主Notebook中调用:
include_notebook("other.ipynb")
这样就能完整展示子Notebook里的Markdown文本、代码块,以及代码运行后的输出。
方法二:使用Jupyter Lab插件(可视化操作)
如果你偏好更直观的界面操作,可以安装jupyterlab-multipage插件,它支持将多个Notebook组织成一个多页面的项目,在主Notebook中直接嵌入子Notebook的全部内容,无需编写额外代码。
内容的提问来源于stack exchange,提问作者Saaru Lindestøkke
相关产品推荐
相关产品推荐

