jupyter nbconvert不保存实际输出

问题描述 投票:1回答:1

我有一个笔记本脚本,我在不同的数据集上运行。我希望每次运行时都在数据文件夹中保存脚本,包括输出单元格。

我在脚本的末尾放置了以下命令,我在jupyter中运行。我打算将我在屏幕上看到的内容保存到HTML文件中。

"here is my notebook script with inputs and ouput including graphs"

cmd='jupyter nbconvert --to html odnp_postprocessing.ipynb --output-dir '+dataFolder
os.system(cmd)

但是,nbconvert不会导出实际的单元格。它将仅在我第一次运行时打印输出单元而不输出,但如果我重新运行,它将最终输出输入和输出。但是,如果我在脚本中更改了某些内容,它将始终导出第一个版本。然后,我找到的唯一方法是重新启动内核并重新运行(两次)新脚本并进行修改。

基本上,它看起来像nbconvert导出某种缓冲区,不一定是用户看到的实际输入和输出单元格。

我想做什么,每次运行时都以编程方式将我的笔记本(输入和输出)保存到HTML中。

是否有命令保存当前版本的笔记本?我尝试在nbconvert命令之前添加%notebook,但也保存了一大堆旧输入。

我知道我可以在nbconvert中运行笔记本,但我想避免它,因为我已经在jupyter中手动运行它。

任何的想法?

我在Chrome浏览器中使用jupyter通过enthought canopy。

谢谢

jupyter flush enthought nbconvert
1个回答
0
投票

你没告诉我们你是如何运行nbconvert的;从目前的笔记本?因此很难弄清楚事情。

Nbconvert将当前文件转换为磁盘上的文件;一个疯狂的猜测:你没有保存你的文件。如果您不保存文件,那么nbconvert可能无法访问单元格的输出;当你第二次运行自动保存时,再次疯狂猜测。

请记住: - Nbconvert不执行文件 - Nbconvert是一个单独的进程,它无法神奇地访问浏览器中的内容,这可能是另一台机器。

通常这样想:

  • 运行笔记本;
  • 保存笔记本
  • 关闭笔记本电脑
  • 运行nbconvert。
  • 重新打开笔记本电脑。

如果您在笔记本的末尾使用此命令以另一种格式保存它,那么您要查找的是save hooks,它会在每次保存笔记本时触发一些代码 - 服务器端。

旁注,了解如何run shell command in IPython; !可用于在CWD中执行shell命令并进行变量插值。

© www.soinside.com 2019 - 2024. All rights reserved.