AA_pearls_elnur_amikishiyev_123rf_10132321.jpg

© Elnur Amikishiyev, 123RF

Mit IPython Notebook kollaborativ programmieren und dokumentieren

An einem Strang

IPython Notebook bietet eine nahtlose Integration von Dokument, Programm und Werkzeugen. Damit erleichtert es das gemeinsame Arbeiten erheblich.

Die Skriptsprache Python brachte schon immer einen interaktiven Modus mit. Die Eingabe von python auf der Kommandozeile startet den sogenannten Read.eval.print loop (REPL) [1]. Nach der Eingabe einer Codezeile antwortet der REPL mit dem Ergebnis. Der Aufsatz IPython [2] mit seinem Fokus auf Interaktivität bietet eine wesentlich verbesserte REPL-Version. Obwohl es aus dem wissenschaftlichen Bereich kommt, möchten viele Administratoren und Entwickler IPython nicht mehr missen.

Der Einsatz von IPython auf der Shell bringt jedoch einige Nachteile mit sich: Neben der auf eine Zeile beschränkten Eingabe stellt vor allem die Flüchtigkeit der Eingaben ein Problem dar. IPython bietet zwar eine über Sessions hinwegreichende Befehlsgeschichte, sodass Sie selbst nach einem Neustart die vorher eingegebenen Befehle finden. Hier springt das komfortablere IPython Notebook in die Bresche, das alle Eingaben speichert. Als Ausgabe unterstützt es nicht nur Text, sondern darüber hinaus auch HTML, Bilder und sogar GUI-Elemente.

IPython Notebook funktioniert nach dem Client-Server-Prinzip: Der Server läuft meist auf localhost und kommuniziert mit dem Client, einem HTML5-fähigen Browser wie etwa Firefox. Das Ganze setzt außerdem voraus, dass Websockets und Client-Side Storage funktionieren. Der Kasten "Installation" erläutert, wie Sie IPython Notebook ins System integrieren.

Installation

IPython Notebook funktioniert mit Python 2 und 3. Es gibt mehrere Möglichkeiten der Installation. Falls Sie Pip nutzen, kommen Sie mit pip install "ipython[notebook]" zum Ziel. Möchten Sie andere Pakete wie NumPy oder Pandas installieren, empfiehlt sich die Anaconda-Distribution, auf deren Download-Seite sich eine Installationsbeschreibung [5] findet. Es besteht zudem die Möglichkeit, den Paketmanager der verwendeten Distribution zu nutzen. Er liefert aber meist eine ältere Version, die möglicherweise einige der hier vorgestellten Möglichkeiten noch nicht unterstützt.

Los geht's

Haben Sie das Programm installiert, starten Sie mit ipython notebook ein neues Fenster des Browsers. Nach der Auswahl von New und im Auswahlmenü Python 3 öffnet sich ein neues Notizbuch (Abbildung 1). Die Menüs erlauben ein komfortables Bedienen. Der Eintrag Kernel weist darauf hin, dass das Notebook als Client agiert und sich mit einem lokal auf der Maschine laufenden Server verbindet; im Hintergrund agieren Tornado [3] und ZeroMQ [4].

Abbildung 1: Bei einem frisch angelegten Notebook bietet es sich an, dieses zuerst umzubenennen.

Als erste Aktion sollten Sie immer das Umbenennen des Dateinamens in Angriff nehmen. Dazu klicken Sie auf Untitled und geben im sich öffnenden Fenster den gewünschten Namen ein. Im Dateisystem finden Sie dann die Datei Name.ipynb, in der alle Informationen des Notebooks im JSON-Format liegen. Die grau hinterlegte Zelle steht für die Eingabe von Python-Kommandos bereit. Es empfiehlt sich jedoch häufig, zuerst etwas einleitenden Text zu schreiben. Dazu ändern Sie die Art der Zelle über das Ausklappmenü in der Mitte von Code zu Markdown.

Markdown lässt sich sehr einfach nutzen und erlaubt zudem im Bedarfsfall den direkten Einsatz von HTML. Mit den drei Grundregeln, dass eine Leerzeile einen neuen Absatz erzeugt, ein Asterisk (*) einen Listenpunkt und die Hash-Zeichen #, ##, ### eine Überschrift der ersten, zweiten beziehungsweise dritten Ebene, entstehen oft schon ausreichend formatierte Texte (Abbildung 2). Zur nächsten Zelle geht es mit [Umschalt]+[Eingabe].

Abbildung 2: Mittels Markdown-Text fügen Sie in ein Notebook zusätzlichen Text ein, der über grundlegende Formatierungen verfügt.

Im Browser programmieren

Den Kern eines Notebooks stellt freilich der Python-Code dar. Wie am interaktiven Prompt erscheint auch bei IPython Notebook nach Abschluss des Kommandos mit [Umschalt]+[Eingabe] das Ergebnis eines Ausdrucks. Dabei korrespondiert die Nummerierung der Eingabezelle In [1]: mit der des Ergebnisses Out[1]:.

Zellen dürfen mehrzeilig ausfallen, Syntax-Hervorhebung und automatische Einrückung sind Standard. Zusätzlichen Komfort bieten das Vervollständigen mit der Tabulator-Taste und eine interaktive Hilfe. Letztere rufen Sie über ein Fragezeichen nach dem Objekt auf, über das Sie mehr wissen möchten, wie zum Beispiel sys?. Daraufhin erscheint die eingebaute Dokumentation samt einiger Zusatzinformationen (Abbildung 3).

Abbildung 3: Mit einem angehängten Fragezeichen erhalten Sie einen Hilfetext samt zusätzlicher Informationen.

IPython bietet viele sogenannte magische Kommandos (siehe Tabelle "Magische Kommandos"). Sie beginnen stets mit einem Prozentzeichen (%); das Kommando %quickref liefert einen Überblick. Zwei wichtige Vertreter sind %ls und %less, die in ihrer Funktion den gleichnamigen Shell-Kommandos entsprechen. Sie funktionieren aber unabhängig vom Betriebssystem, sodass Sie auch bei einem Ausflug zu Windows damit arbeiten können.

Reicht die Zauberkraft dieser Magie nicht aus, führen Sie durch Voranstellen von ! direkt Shell-Befehle aus (Abbildung 4). Die Rückgabewerte speichern Sie bei Bedarf in Python-Variablen ab. So legt der Aufruf t = !ls | grep Not das Ergebnis des Grep-Befehls in t ab, im Regelfall in Form einer Liste (['Notebook.ipynb']).

Abbildung 4: Das Notebook bietet vollen Zugriff auf die Kommandozeile.

Magische Kommandos

%alias Alias für einen Systembefehl definieren
%autocall ermöglicht Funktionsaufrufe ohne Klammern
%automagic magische Funktionen ohne vorangestelltes % erkennen
%autosave Autosave-Intervall in Sekunden einstellen
%bookmark Lesezeichenverwaltung
%cd Verzeichniswechsel
%hist Befehlshistorie abrufen
%ls Verzeichnisinhalt
%magic Informationen zu den magischen Funktionen
Weitere Kommandos
Objekt? Hilfe zu einem Objekt abrufen
!Befehl Shell-Befehl direkt ausführen
Variable = !Befehl Ausgabe eines Shell-Befehls speichern

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 5 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Punktgenau
    Häufig gelingt es erst mit einer geeigneten Visualisierung, komplexe Daten und deren Zusammenhänge anschaulich zu machen. Dabei greifen Ihnen Python und mächtige Bibliotheken wie Matplotlib, Bokeh und Pandas hilfreich unter die Arme.
  • Entwicklungshelfer
    Nachdem in den ersten Teilen der Python-Einführung die Sprache beschrieben wurde, geht es im letzten Teil um nützliche Hilfen rund um Python.
  • Komplexes vereinfachen
    Machen Sie sich die Arbeit leicht, indem Sie komplexe Dokumente erst in Markdown schreiben und dann mit Pandoc konvertieren – mit allen Finessen.
  • Programmieren lernen in fünf Schritten
    Ob Sie nur ein kleines Administrationsskript entwickeln oder eine umfangreiche Anwendung entwickeln – mit Python geht beides leicht von der Hand.
  • Arbeitsumgebung für Python

    Der Physiker Hannes Matuschek hat seine Python-Arbeitsumgebung Scipy-Notebook in einer ersten gebrauchsfertigen Version veröffentlicht.
Kommentare

Infos zur Publikation

LU 11/2017: Server für Daheim

Digitale Ausgabe: Preis € 8,50
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Stellenmarkt

Aktuelle Fragen

Lieber Linux oder Windows- Betriebssystem?
Sina Kaul, 13.10.2017 16:17, 2 Antworten
Hallo, bis jetzt hatte ich immer nur mit
IT-Kurse
Alice Trader, 26.09.2017 11:35, 2 Antworten
Hallo liebe Community, ich brauche Hilfe und bin sehr verzweifelt. Ih bin noch sehr neu in eure...
Backup mit KUP unter Suse 42.3
Horst Schwarz, 24.09.2017 13:16, 3 Antworten
Ich möchte auch wieder unter Suse 42.3 mit Kup meine Backup durchführen. Eine Installationsmöglic...
kein foto, etc. upload möglich, wo liegt mein fehler?
kerstin brums, 17.09.2017 22:08, 5 Antworten
moin, zum erstellen einer einfachen wordpress website kann ich keine fotos uploaden. vom rechne...
Arch Linux Netzwerkkonfigurationen
Franziska Schley, 15.09.2017 18:04, 0 Antworten
Moin liebe Linux community, ich habe momentan Probleme mit der Einstellung des Lan/Wlan in Arc...