Преобразование IPython notebook в html с отдельными изображениями

у меня есть ноутбук ipython со смесью графиков SVG и PNG. Я могу экспортировать его в 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-файлы, перейти в папку. В идеале как можно проще!

1 ответов


спасибо Томас Ктолчок у меня был некоторый успех в том, чтобы заставить это работать. Считайте это прото-ответом, пока у меня не будет возможности разобраться во всех нюансах проблемы. Вероятно, будут ошибки, но это мое понимание того, что происходит.

для переопределения поведения по умолчанию 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']

здесь ["mynotebook.ipynb"] - это файл или список файлов, которые я хочу конвертировать. Часть, которая контролирует как ноутбук преобразуется в 'extractoutput.ExtractOutputPreprocessor' в этом случае.

extractoutput.ExtractOutputPreprocessor относится к extractoutput.py, который также находится в том же каталоге, что и ноутбуки (хотя я не думаю, что это должно быть).

extractoutput.ExtractOutputPreprocessor относится к функции в extractoutput.py что указывает способ обработки выходных данных.

в моем случае содержимое этого файла берется именно из IPython repo С небольшой модификацией. Строка 22 (from .base import Preprocessor) производит

ValueError: Attempted relative import in non-package

потому что он не знает, где искать пакет. При изменении на

fromIPython.nbconvert.preprocessors.base import Preprocessor

затем он работает, и все активы изображения помещаются в the .

мне не нужно было редактировать шаблон вывода HTML