IPython

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
IPython
IPython Logo.png
IPython-shell.png
IPython-Shell mit Matplotlib-Plotfenster
Basisdaten
Aktuelle Version 6.1
(31. Mai 2017[1])
Betriebssystem plattformübergreifend
Programmiersprache Python und JavaScript
Lizenz BSD-Lizenz
deutschsprachig ja
ipython.org

IPython ist ein Kommandozeileninterpreter zum interaktiven Arbeiten mit der Programmiersprache Python. Es handelt sich nicht um eine bloße Erweiterung der in Python eingebauten Shell (siehe interaktive Benutzung von Python), sondern um eine Softwaresuite zum Entwickeln und Ausführen von Python-Programmen. Funktionen wie Introspektion, Befehlszeilenergänzung, Rich-Media-Einbettung und verschiedenen Frontends (Terminal, Qt-basiert oder browserbasiert) ermöglichen es, Python-Anwendungen mit einem Komfort zu entwickeln, wie man ihn von Software wie Matlab oder Mathematica kennt. IPython kann auch als integrierte Entwicklungsumgebung betrachtet werden. Tatsächlich handelt es sich bei IPython um ein Client-Server-Framework, welches für High-Performance-Rechnungen durch Parallelrechner verwendet werden kann.

Ursprung[Bearbeiten | Quelltext bearbeiten]

IPython wurde im Rahmen der SciPy-Softwareumgebung entwickelt und entstammt damit der Domäne des wissenschaftlichen Rechnens. Die Integration von Matplotlib in die Notebookoberfläche macht es zu einem Open-Source-Konkurrenten für die verbreitete Numerik-Software Matlab, weswegen man die Kombination von IPython mit Matplotlib oft auch als Pylab bezeichnet.

Architektur und Notebook[Bearbeiten | Quelltext bearbeiten]

Die Architektur von IPython

Eine Besonderheit bei IPython ist der Einbau der Messagequeue ØMQ (vgl. Message Oriented Middleware). So trennt die Architektur von IPython klar das Backend als die Recheneinheit, etwa der Python-Interpreter, von dem Frontend als Darstellungsebene. Diese Trennung erlaubt es, IPython weitgehend universal für verschiedene Backends (oft auch Kernel genannt) und Frontends zu verwenden. Mithilfe des eventbasierten Python-Webservers Tornado und WebSockets stellt eine Weboberfläche ein mögliches Frontend dar. Dies erlaubt es, IPython im modernen Web (Web 2.0) flexibel einzusetzen.

IPython ist dokumentenorientiert. Ein IPython-Dokument wird, wie in dem wissenschaftlichen Umfeld üblich, als Notebook bezeichnet. Ein Notebook ist eine JSON-Datei, die eine geordnete Liste von Eingabe- und Ausgabezellen enthält, welche Code, Plain text, LaTeX-Ausgaben, Plots und diverse Medienformate darstellen kann. Damit unterscheidet sich ein IPython-Notebook grundsätzlich etwa von einem einfachen Python-Script, welches (in der Regel) nur Code enthält.

Beginnend mit Version 4.0 wurde das Projekt insgesamt aufgeteilt und weiter modularisiert. IPython wird fortan nicht länger als einzelnes, monolithisches Paket vertrieben, sondern begrenzt sich nun auf die an Python gebundenen Kernkomponenten. Sämtliche sprachunabhängige Module (wie das Notebook, die Qtconsole und die Messagequeue) wurden dagegen in ein neues Projekt namens Jupyter ausgelagert und können so zukünftig auch unabhängig von IPython genutzt und aktualisiert werden.[2]

Weblinks[Bearbeiten | Quelltext bearbeiten]

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]

  1. Release 6.1.0
  2. IPython-4-Release schließt Projektmodularisierung ab, Bericht auf heise.de vom 12. August 2015; abgerufen am 20. August 2015