在 Jupyter Notebook 中隐藏代码单元,使用 Papermill 执行,使用 nbconvert 转换为 PDF
Hide code cells in Jupyter Notebook, execute with Papermill, transform to PDF with nbconvert
我想 运行 使用 papermill
的 python
程序(不是命令行)来执行 jupyter
笔记本,然后将其转换为 PDF。这个想法可行,但我无法隐藏输入单元格。
因为 papermill
report_mode = True
应该隐藏输入单元格,但是 jupyter
Classic (https://github.com/nteract/papermill/issues/130)
似乎有问题
其他扩展如 hide_input 或 html 脚本也不够。
也许隐藏单元格的 nbconvert
模板是一个解决方案,但我没有得到 运行ning.
我的最小代码:
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。我想在 Python
中使用 nbconvert
而不是作为命令行工具,因为脚本应该每天 运行。
我知道你说你 "don't want to use command line",但是让你的 python 脚本在 运行 papermill
之后执行 subprocess
命令怎么样?与此混合 :
import subprocess
subprocess.call('jupyter nbconvert --to pdf --TemplateExporter.exclude_input=True Output.ipynb')
我想 运行 使用 papermill
的 python
程序(不是命令行)来执行 jupyter
笔记本,然后将其转换为 PDF。这个想法可行,但我无法隐藏输入单元格。
因为 papermill
report_mode = True
应该隐藏输入单元格,但是 jupyter
Classic (https://github.com/nteract/papermill/issues/130)
其他扩展如 hide_input 或 html 脚本也不够。
也许隐藏单元格的 nbconvert
模板是一个解决方案,但我没有得到 运行ning.
我的最小代码:
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。我想在 Python
中使用 nbconvert
而不是作为命令行工具,因为脚本应该每天 运行。
我知道你说你 "don't want to use command line",但是让你的 python 脚本在 运行 papermill
之后执行 subprocess
命令怎么样?与此混合
import subprocess
subprocess.call('jupyter nbconvert --to pdf --TemplateExporter.exclude_input=True Output.ipynb')