使用单独的图像将ipython笔记本转换为html

使用单独的图像将ipython笔记本转换为html,ipython,ipython-notebook,Ipython,Ipython Notebook,我有一个ipython笔记本,混合了SVG和PNG图形。我可以毫不费力地将其导出为html,但它将图像作为编码文本嵌入到.html文件的主体中 我打电话: ipython nbconvert --to html mynotebook.ipynb 命令行的输出包括: [NbConvertApp] Converting notebook mynotebook.ipynb to html [NbConvertApp] Support files will be in mynotebook_files

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

我打电话:

ipython nbconvert --to html mynotebook.ipynb
命令行的输出包括:

[NbConvertApp] Converting notebook mynotebook.ipynb to html
[NbConvertApp] Support files will be in mynotebook_files/
但是没有创建这样的目录,其中也没有文件

有相关的职位( , , , )但他们要么不解决这个具体问题,要么参考NBconvert作为一个独立图书馆的旧时代

解释了如何用老方法解决这个问题

我尝试使用:

ipython nbconvert --config mycfg.py

.py
文件中,但这是我所能得到的

我要寻找的是一种将png文件(最好是svg文件)放入文件夹的方法。理想情况下尽可能容易

多亏了他的轻推,我已经成功地使它工作起来了。在我有机会了解问题的所有细微差别之前,先考虑一下这个问题。可能会有错误,但这是我对正在发生的事情的理解

覆盖默认值的默认行为
ipython nbconvert——到html mynotebook.ipynb
命令,您需要指定一个配置文件并按如下方式调用它
ipython nbconvert--config mycfg.py
。其中
mycfg.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
中的一个函数,用于指定如何处理输出

在我的例子中,这个文件的内容完全取自,只需稍加修改。第22行(
来自.base导入预处理器)生成

ValueError:尝试在非包中进行相对导入

因为它不知道去哪里找包裹。当更改为

来自
IPython.nbconvert.preprocessors
.base导入预处理器

然后它开始工作,所有的图像资产都被放入
mynotebook\u文件
目录中

我不需要编辑,在本例中,它知道在何处查找。

有一个预处理器,可以将图像保存到单独的文件中,但您需要修改以了解提取的图像。已修复此模板,因此启用ExtractOutputPreprocessor应该是现在唯一必要的步骤。
c = get_config()
c.NbConvertApp.notebooks = ["mynotebook.ipynb"]
c.NbConvertApp.export_format = 'html'
c.Exporter.preprocessors = ['extractoutput.ExtractOutputPreprocessor']