nbconvert#

nbconvert

konvertiert Notebooks in andere Formate

Installation#

$ pipenv install nbconvert

Wichtig

Um alle Funktionen von nbconvert nutzen zu können, sind Pandoc und TeX (insbesondere XeLaTeX) erforderlich. Diese müssen separat installiert werden.

Pandoc installieren#

nbconvert verwendet Pandoc um Markdown in andere Formate als HTML zu konvertieren.

$ sudo apt install pandoc
$ brew install pandoc

Tex installieren#

Für die Konvertierung in PDF verwendet nbconvert das Tex-Ökosystem zur Vorbereitung: Es wird eine .tex-Datei erstellt, die von der XeTeX-Engine in ein PDF konvertiert wird.

$ sudo apt install texlive-xetex
$ eval "$(/usr/libexec/path_helper)"
$ brew install --cask mactex

Siehe auch

MacTeX

Verwenden auf der Kommandozeile#

$ jupyter nbconvert --to FORMAT mynotebook.ipynb
latex

erzeugt eine Datei NOTEBOOK_NAME.tex und ggf. Bilder als PNG-Dateien in einem Ordner. Mit --template kann zwischen einem von zwei Vorlagen ausgewählt werden:

--template article

Standard

Latex-Artikel, abgeleitet aus dem How-To von Sphinx

--template report

Latex-Bericht mit Inhaltsverzeichnis und Kapiteln

pdf

erzeugt ein PDF über Latex. Unterstützt die gleichen Vorlagen wie latex.

slides

erstellt Reveal.js-Slides.

script

konvertiert das Notebook in ein ausführbares Skript. Dies ist der einfachste Weg, ein Python-Skript oder ein Skript in einer anderen Sprache zu erzeugen.

Bemerkung

Enthält ein Notebook Magics, so können dies möglicherweise nur in einer Jupyter-Session ausgeführt werden.

Wir können z.B. Python4DataScience/docs/workspace/ipython/mypackage/foo.ipynb in ein Python-Skript verwandeln mit:

$ pipenv run jupyter nbconvert --to script docs/basics/ipython/mypackage/foo.ipynb
[NbConvertApp] Converting notebook docs/basics/ipython/mypackage/foo.ipynb to script
[NbConvertApp] Writing 245 bytes to docs/basics/ipython/mypackage/foo.py

Das Ergebnis ist dann foo.py mit:

#!/usr/bin/env python
# coding: utf-8

# # `foo.ipynb`

# In[1]:
def bar():
    return "bar"

# In[2]:
def has_ip_syntax():
    listing = get_ipython().getoutput('ls')
    return listing

# In[3]:
def whatsmyname():
    return __name__

Bemerkung

Um eine Zuordnung von Notebook-Cells zu Slides festzulegen, solltet ihr in View ‣ Cell Toolbar ‣ Slideshow auswählen. Daraufhin wird in jeder Zelle oben rechts ein Menü angezeigt mit den Optionen: Slide, Sub-Slide, Fragment, Skip, Notes.

Bemerkung

Für Vortragsnotizen ist eine lokale Kopie von reveal.js erforderlich. Damit nbconvert diese findet, kann folgende Option angegeben werden: --reveal-prefix /PATH/TO/REVEAL.JS.

Weitere Angaben für FORMAT sind asciidoc, custom, html, markdown, notebook, und rst.

nb2xls#

nb2xls konvertiert Jupyter-Notebooks in Excel-Dateien .xlsx) unter Berücksichtigung von pandas DataFrames und Matplotlib-Ausgaben. Die Eingabezellen werden jedoch nicht konvertiert und Markdown nur zum Teil.

Eigene Exporter#

Siehe auch

Customizing exporters erlaubt euch, eigene Exporter zu schreiben.