使用单独的图像将ipython notebook转换为html

我有一个混合了SVG和PNG图形的ipython笔记本。 我可以毫无困难地将它导出到html,但它将图像作为编码文本嵌入到.html文件的主体中。

我打电话给:

ipython nbconvert --to html mynotebook.ipynb

命令行的输出包括:

[NbConvertApp] Converting notebook mynotebook.ipynb to html
[NbConvertApp] Support files will be in mynotebook_files/

但是没有创建这样的目录,并且其中没有文件。

有相关的帖子(1,2,3,4),但他们要么不解决这个问题,要么提到NBconvert是一个单独的图书馆的旧日。

本文档解释了如何在旧的做事方式上解决这个问题。

我试过使用:

ipython nbconvert --config mycfg.py

c = get_config()
c.NbConvertApp.notebooks = ["mynotebook.ipynb"]

.py文件中,但是和我一样。

我正在寻找的是一种使png文件(最好是svg文件)进入文件夹的方法。 理想情况下尽可能轻松!


感谢Thomas K的推动,我在取得这项成果方面取得了一些成功。 考虑这个原始答案,直到我有机会解决问题的所有细微差别为止。 可能会有错误,但这是我对发生的事情的理解。

要覆盖缺省ipython nbconvert --to html mynotebook.ipynb命令的默认行为,您需要指定一个配置文件并将其称为此ipython nbconvert --config mycfg.pymycfg.py是与您的笔记本电脑相同的目录中的文件。 我看起来像这样:

c = get_config()
c.NbConvertApp.notebooks = ["mynotebook.ipynb"]
c.NbConvertApp.export_format = 'html'
c.Exporter.preprocessors = ['extractoutput.ExtractOutputPreprocessor']

其中["mynotebook.ipynb"]是我要转换的文件或文件列表。 在这种情况下,控制笔记本转换方式的部分是'extractoutput.ExtractOutputPreprocessor'

extractoutput .ExtractOutputPreprocessor引用extractoutput.py ,它也与笔记本位于同一个目录中(尽管我不认为它需要)。

extractoutput .ExtractOutputPreprocessor是指在功能extractoutput.py指定如何输出将被处理。

在我的情况下,这个文件的内容完全取自IPython回购,只需稍作修改即可。 第22行( from .base import Preprocessor )产生一个

ValueError: Attempted relative import in non-package

错误,因为它不知道在哪里查找包。 更改为

from IPython.nbconvert.preprocessors .base import Preprocessor

那么它就可以工作,并且所有的图像资产都会被放入mynotebook_files目录中。

在这种情况下,我不需要编辑HTML输出模板,无论如何它都知道在哪里看。

链接地址: http://www.djcxy.com/p/77729.html

上一篇: Converting ipython notebook to html with separate images

下一篇: Ruby stubbing with faraday, can't get it to work