Ben*_*Ben 9 ipython ipython-notebook
我有一个混合了SVG和PNG图形的ipython笔记本.我可以毫不费力地将它导出到html,但它将图像作为编码文本嵌入.html
文件正文中.
我打电话给:
ipython nbconvert --to html mynotebook.ipynb
Run Code Online (Sandbox Code Playgroud)
命令行的输出包括:
[NbConvertApp] Converting notebook mynotebook.ipynb to html
[NbConvertApp] Support files will be in mynotebook_files/
Run Code Online (Sandbox Code Playgroud)
但是没有创建这样的目录,并且其中没有文件.
有相关帖子(1 ,2 ,3 ,4 ),但他们要么不解决这个具体问题,或参阅昔日当NBconvert是一个单独的库.
本文档解释了如何在旧的做事方式上解决这个问题.
我试过用:
ipython nbconvert --config mycfg.py
Run Code Online (Sandbox Code Playgroud)
同
c = get_config()
c.NbConvertApp.notebooks = ["mynotebook.ipynb"]
Run Code Online (Sandbox Code Playgroud)
在.py
文件中,但这就像我所拥有的那样.
我正在寻找的是一种方法,使png文件,最好是svg文件,进入一个文件夹.理想情况下尽可能容易!
感谢Thomas K的推动,我已经取得了一些成功。在我有机会了解问题的所有细微差别之前,请将此视为原始答案。可能会有错误,但这是我对正在发生的事情的理解。
要覆盖默认命令的默认行为,
ipython nbconvert --to 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']
Run Code Online (Sandbox Code Playgroud)
["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 输出模板,它无论如何都知道在哪里查看。
归档时间: |
|
查看次数: |
1456 次 |
最近记录: |