是否可以手动将造纸厂参数添加到jupyter笔记本中,例如在编辑器中?是否有可能将造纸厂参数添加到.py文件中,并在转换为.pynb文件时保持它们?
背景:
我正在通过Papermill以自动化的方式运行jupyter笔记本。我希望手动向笔记本添加参数,而不是使用jupyter或jupyter实验室接口。理想情况下,可以先将这些参数添加到python脚本.py文件中。在将.py文件转换为.ipynb文件后,参数将保持不变。
我想要的工作流程是这样的:
- 将普通笔记本存储为<</li>版本控制库中包含参数的notebook>.py文件
- 转换python脚本<笔记本>.py到jupyter笔记本<笔记本在.ipynb>笔记本在.ipynb>笔记本>
- & lt;笔记本祝辞。ipynb通过造纸厂并传递参数给它
- 使用nbconvert生成不带代码的pdf输出(使用exclude_input参数)
步骤1-3将通过一个可以自动执行的脚本运行。我想使用jupytext来避免存储笔记本及其所有相关元数据。目前,我能找到的向笔记本添加参数的唯一方法是通过jupyter/(lab)接口添加参数。然后我可以运行笔记本与造纸机。但是,这不适用于jupytext转换。
*注:我将添加"jupytext"标签,但它还不存在我没有足够的rep来创建
编辑
鹅莓的答案似乎是正确的。
然而,为了通过造纸机注入参数,实际上似乎没有必要在笔记本中添加参数标签。虽然造纸厂会给出一个no cell with tag parameters found in notebook
警告,但它仍然会注入参数。此外,您的纸厂输出笔记本将有一个新的单元格:
# 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