手动将造纸厂参数添加到笔记本
Add papermill parameters to notebook manually
是否可以手动将 papermill 参数添加到 jupyter notebook,例如在编辑器中?是否可以将 papermill 参数添加到 .py 文件并让它们在转换为 .pynb 文件时保持不变?
上下文:
我正在通过 Papermill 以自动化方式处理 运行ning jupyter 笔记本。我想手动向笔记本添加参数,而不是使用 jupyter 或 jupyter lab 界面。理想情况下,可以先将这些参数添加到 python 脚本 .py 文件中。将 .py 文件转换为 .ipynb 文件后,参数将保留。
我想要的工作流程如下所示:
- 在版本控制存储库中将通用笔记本存储为带有参数的
.py 文件
- 将python脚本
.py转换为jupyter notebook.ipynb
- 运行
.ipynb 通过 papermill 并将参数传递给它
- 使用 nbconvert 生成无代码的输出 pdf(使用 exclude_input 参数)
第 1-3 步将 运行 通过可自动执行的脚本进行。我想使用 jupytext 来避免存储笔记本及其所有关联的元数据。目前,我能找到的向笔记本添加参数的唯一方法是通过 jupyter/(lab) 接口添加它们。然后我就可以 运行 带造纸机的笔记本了。但是,这不适用于 jupytext 转换。
*请注意,我会为此添加“jupytext”标签,但它还不存在,我没有足够的代表来创建
编辑
gooseberry 的回答似乎是正确的。
但是,为了通过 papermill 注入参数,实际上似乎没有必要向笔记本添加参数标签。虽然 papermill 会发出 no cell with tag parameters found in notebook
警告,但它仍会注入参数。此外,您从 papermill 输出的笔记本将有一个新单元格:
# Parameters
parm1 = <val passed to papermill>
parm2 = <val passed to papermill>
etc.
版本:
- 造纸厂 = 2.2.3
- jupytext = 1.12.0
这取决于您为 .py 文件选择的格式,但假设您选择了“百分比”格式,其中每个新单元格都用 #%%
标记,以添加您编写的标签:
#%% tags=["parameters"]
my_text = ""
print(my_text)
现在您可以使用 Papermill 注入 my_text
的不同值。
您可以在此处找到有关格式的更多信息:https://jupytext.readthedocs.io/en/latest/formats.html
是否可以手动将 papermill 参数添加到 jupyter notebook,例如在编辑器中?是否可以将 papermill 参数添加到 .py 文件并让它们在转换为 .pynb 文件时保持不变?
上下文:
我正在通过 Papermill 以自动化方式处理 运行ning jupyter 笔记本。我想手动向笔记本添加参数,而不是使用 jupyter 或 jupyter lab 界面。理想情况下,可以先将这些参数添加到 python 脚本 .py 文件中。将 .py 文件转换为 .ipynb 文件后,参数将保留。
我想要的工作流程如下所示:
- 在版本控制存储库中将通用笔记本存储为带有参数的
.py 文件 - 将python脚本
.py转换为jupyter notebook .ipynb - 运行
.ipynb 通过 papermill 并将参数传递给它 - 使用 nbconvert 生成无代码的输出 pdf(使用 exclude_input 参数)
第 1-3 步将 运行 通过可自动执行的脚本进行。我想使用 jupytext 来避免存储笔记本及其所有关联的元数据。目前,我能找到的向笔记本添加参数的唯一方法是通过 jupyter/(lab) 接口添加它们。然后我就可以 运行 带造纸机的笔记本了。但是,这不适用于 jupytext 转换。
*请注意,我会为此添加“jupytext”标签,但它还不存在,我没有足够的代表来创建
编辑
gooseberry 的回答似乎是正确的。
但是,为了通过 papermill 注入参数,实际上似乎没有必要向笔记本添加参数标签。虽然 papermill 会发出 no cell with tag parameters found in notebook
警告,但它仍会注入参数。此外,您从 papermill 输出的笔记本将有一个新单元格:
# Parameters
parm1 = <val passed to papermill>
parm2 = <val passed to papermill>
etc.
版本:
- 造纸厂 = 2.2.3
- jupytext = 1.12.0
这取决于您为 .py 文件选择的格式,但假设您选择了“百分比”格式,其中每个新单元格都用 #%%
标记,以添加您编写的标签:
#%% tags=["parameters"]
my_text = ""
print(my_text)
现在您可以使用 Papermill 注入 my_text
的不同值。
您可以在此处找到有关格式的更多信息:https://jupytext.readthedocs.io/en/latest/formats.html