我有一个笔记本,可以重新格式化探索性分析笔记本的结果,以便导出到幻灯片。此notebook根据传入的“零件类型”和“参数”数量创建新单元格。我使用以下代码生成了一个新的单元格,当我在notebook中进行测试时,它可以正常工作:
def create_code_cell(cell_content, replace=False,):
shell = get_ipython()
payload = {
"source":"set_next_input",
"text":cell_content,
"replace":replace,
}
shell.payload_manager.write_payload(payload, single=False)我遇到的问题是,当我使用Papermill执行时,此函数无法创建单元格。
如果我打开从Papermill创建的新笔记本,并单击Cells=>Run,则会生成所有单元格。
谢谢你的帮助!
发布于 2019-07-20 04:01:34
IPython在幕后使用nbConvert,它在没有启动任何web浏览器消息传递协议的情况下运行IPython外壳。如果在shell中运行IPython并运行给定的命令,则不会生成任何输出。通过在浏览器中运行notebook设置的消息传递协议是侦听这些有效负载更新并从其创建新单元的内容。
我所见过的在notebook中以编程方式创建单元格的唯一其他解决方案依赖于JavaScript运行,如果您也不在浏览器中运行,也就是nbConvert。
也许这就是您已经拥有的东西,但是您是否可以这样设置生成的notebook :当用户第一次在浏览器中运行它时,notebook会“自动展开”?
https://stackoverflow.com/questions/56975965
复制相似问题