jupyter nbconvert 不保存实际输出

jupyter nbconvert doesn't save actual output

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

我在 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 浏览器中通过 enthought canopy 使用 jupyter。

谢谢

您没有告诉我们您的确切情况 运行ning nbconvert;从目前的笔记本?因此很难弄清楚事情。

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

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

通常这样想:

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

如果您在笔记本末尾使用此命令将其保存为另一种格式,那么您正在寻找的是 save hooks 每次保存时都会触发一些代码 – 服务器端笔记本。

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