Преобразование 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
потому что он не знает, где искать пакет. При изменении на
from
IPython.nbconvert.preprocessors
.base import Preprocessor
затем он работает, и все активы изображения помещаются в the .
мне не нужно было редактировать шаблон вывода HTML