我想使用python
运行papermill
程序(不是命令行)来执行jupyter
笔记本,然后将其转换为PDF。这个想法可行,但是我无法隐藏输入单元格。
对于papermill
,report_mode = True
应该隐藏输入单元格,但是jupyter
Classic(https://github.com/nteract/papermill/issues/130)似乎有问题
其他扩展名(例如hide_input或html脚本)也不足够。
也许隐藏单元格的nbconvert
模板是一个解决方案,但我没有让它运行。
我的最小代码:
pm.execute_notebook(
"Input.ipynb",
"Output.ipynb",
parameters=dict(id=id),
report_mode=True,
)
notebook_filename = "Output.ipynb"
with open(notebook_filename) as f:
nb = nbformat.read(f, as_version=4)
pdf_exporter = PDFExporter()
pdf_data, resources = pdf_exporter.from_notebook_node(nb)
因此,我正在寻找一种执行笔记本,隐藏输入单元格并将笔记本转换为PDF的方法。我想在nbconvert
中使用Python
,而不要用作命令行工具,因为脚本应每天运行。
答案 0 :(得分:1)
我知道您说过“不想使用命令行”,但是在运行subprocess
之后让python脚本执行papermill
命令又如何呢?与此answer混合:
import subprocess
subprocess.call('jupyter nbconvert --to pdf --TemplateExporter.exclude_input=True Output.ipynb')