nbconvert

nbconvert

konvertiert Notebooks in andere Formate

Siehe auch

Jupyter Notebook installieren: nbconvert ist Teil des Jupyter-Ökosystems.

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.

  • für Ubuntu und Debian:

    $ sudo apt install pandoc
    
  • für Mac OSX:

    $ 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.

  • für Ubuntu und Debian:

    $ sudo apt install texlive-xetex
    
  • für Mac OSX:

    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. docs/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.