MartinPhysicist/ipython de

Kommandozeileninterpreter
IPython Shell
Screenshot von IPython
Basisdaten

Hauptentwickler Fernando Perez und andere
Aktuelle Version 2.3
(1. Oktober 2014)
Programmiersprache Python
Kategorie Kommandozeileninterpreter
Lizenz BSD
www.ipython.org

IPython ist ein Kommandozeileninterpreter für die interaktive Benutzung verschiedener Programmiersprachen, welcher ursprünglich für Python entwickelt wurde. Zu den Merkmalen gehöhren erweiterte Möglichkeiten der Code-Inspektion, Unterstützung verschiedener Medien-Formate, erweiterte Kommandozeilenbefehle, Befehlszeilenergänzung und eine verbesserte Befehlshistorie. Momentan sind folgende Zusatzfunktionen verfügbar:

  • interaktive Kommandozeile (Im Terminal oder als [Qt_(Bibliothek)|Qt]-basierte Anwendung)
  • Im Browser dargestellte Notebook-Oberfläche mit Unterstützung von normalem Text, Programmcode, mathematischen Ausdrücken, Graphen und anderen Medien-Formaten
  • Unterstützung für interaktive [Datenvisualisierung|Visualisierung] und die Benutzung von grafischen Toolkits
  • Flexible, einbindbare Interpreter für die Verwendung in eigenen Projekten
  • Einfach zu benutzende, leistungsfähige Hilfsmittel für Parallel Computing

Parallelisierung Bearbeiten

 
Darstellung des Parallelisierungsschemas von IPython

IPython besitzt eine durchdachte und leistungsfähige Architektur für paralleles und verteiltes Rechnen. Dadurch wird es emöglicht, alle möglichen Arten von parallelen Anwendungen auf interaktive Art und Weise zu entwickeln, auszuführen, Fehler zu beseitigen und zu überwachen. Durch diese Architektur wird die Parallelisierung zum größten Teil von der Anwendungsebene abstrahiert, wodurch IPython viele verschiedene Arten der Parallelisierung umsetzen kann.[1] Darunter:


Notebook Bearbeiten

IPython Notebook ist eine interaktive Webanwendung zur Erstellung sogenannter Notebook-Dateien. Eine solche Datei ist als JSON-Dokument realisiert und enthält eine geordnete Liste von Ein-/Ausgabezellen, welche Programmcode, Text, Formeln, Graphen oder andere Medien-Daten enthalten können.

Notebooks können in eine Reihe von Ausgabeformaten übersetzt werden (HTML, HTML Präsentationsfolien, LaTeX, PDF, ReStructuredText, Markdown, Python). Dazu stehen die 'Download As'-Funktion in der Web-Oberfläche bzw. der Kommandozeilenbefehl 'ipython nbconvert' zur Verfügung.

 
Arbeitsabläufe mit IPython Notebook
 
Die IPython Notebook Oberfläche

IPython Notebook stellt eine browser-basierte Read-Evaluate-Print-Schleife zur Verfügung, welche auf einige Python-Standardbibliotheken zurückgreift:

IPython Notebook stellt eine Verbindung mit einem IPython Kernel her. In der aktuellen Version 2.3[2][3] (October 2014) stehen über 21 zu IPython kompatible Kernel für viele Programmiersprachen zur Verfügung, darunter Python, R, Julia und [Haskell (Programmiersprache) | Haskell].[4]

IPython Notebook wurde in der Version 0.12[5] (Dezember 2011) in IPython integriert. IPython Notebook wird oft mit Maple, Mathematica und Sage verglichen.

IPython Notebooks werden oft dazu genutzt, Grafiken aus SciPy-Programmpaketbibliotheken[6]wie NumPy und SciPy darzustellen, welche oft zusammen mit IPython von einer der zahlreichen wissenschaftlichen Python-Distributionen installiert werden.[6]

Andere Besonderheiten Bearbeiten

IPython erlaubt die nicht-blockierende Verwendung von Tkinter, PyGTK, PyQt/PySide und wxPython (der Standardkommandozeileninterpreter von Python erlaubt dies nur für Tkinter). Zudem kann IPython parallele Computercluster interaktiv mithilfe asynchroner Rückruffunktionen bzw. der MPI-API ansprechen. IPython kann ferner dazu benutzt werden, die Betriebssystem-Shell zu ersetzen.[7] Dabei ähnelt die Verhaltensweise im Wesentlichen anderen Unix-Shells, erlaubt jedoch Anpassungen durch den Benutzer und die Möglichkeit, Programmcode unmittelbar in einer Python-Umgebung auszuführen.


In der Presse Bearbeiten

IPython wurde auf namenhaften Computer-Seiten erwähnt[8] und ist bei wissenschaftlichen Konferenzen präsent.[9] Für die Anwendung in wissenschaftlichen und ingenieurtechnischen Arbeiten findet es oft als Begleitwerkzeug für Matplotlib Erwähnung.[10]

Fördergelder und Preise Bearbeiten

Mit Beginn am 1. Januar 2013 wird die Alfred P. Sloan Foundation die Entwicklung von IPython für 2 Jahre unterstützen.[11]

Am 23. März 2013 wurde Fernando Perez der Preis der Advancement of Free Software award der Free Software Foundation für die Entwicklung von IPython verliehen.

Im August 2013 spendete Microsoft 100.000 US-Dollar, um die Weiterentwicklung von IPython zu fördern.[12]

Im Januar 2014 gewann IPython den Jolt Productivity Award[13] von en:Dr. Dobb's in der Kategorie Programmierwerkzeuge.

Einzelnachweise Bearbeiten

  1. Using IPython for Parallel computing - IPython docs.
  2. What's new in IPython > Issues closed in the 2.x development cycle.
  3. What's new in IPython > 2.0 Series.
  4. Projects using IPython > List of (some) IPython compatible kernels.
  5. Notebook's announcement- 0.12 release note.
  6. a b SciPy Stack.
  7. Wes McKinney: Python for Data Analysis. 2012, ISBN 978-1-4493-1979-3, Chapter 3 (oreilly.com).
  8. Conrad Koziol: Introducing IPython. NewsForge, 12. September 2005;.
  9. IPython Presentations.
  10. Fernando Pérez, Brian E. Granger: IPython: A System for Interactive Scientific Computing. In: Computing in Science & Engineering. 9. Jahrgang, Nr. 3, 2007 (fperez.org [PDF]).
  11. Announcement in scipy mailing list.
  12. IPython Announcement.
  13. Jolt Productivity Award write-up in Dr. Dobb's.

Weblinks Bearbeiten