IPython

For the implementation of Python under the .NET Framework, see IronPython.
IPython

IPython Shell
Original author(s) Fernando Perez[1]
Developer(s) Others
Initial release 2001[1]
Stable release 3.0 / 27 February 2015
Written in Python, JavaScript, CSS, HTML
Operating system Cross-platform
Type Shell
License BSD
Website www.ipython.org

IPython is a command shell for interactive computing in multiple programming languages, originally developed for the Python programming language, that offers enhanced introspection, rich media, additional shell syntax, tab completion, and rich history. IPython currently provides the following features:

Parallel computing

IPython has a sophisticated and powerful architecture for parallel and distributed computing. IPython enables all types of parallel applications to be developed, executed, debugged and monitored interactively. Hence, the I (Interactive) in IPython.[2] This architecture abstracts out parallelism in a very general way, which enables IPython to support many different styles of parallelism[3] including:

Architectural View of IPython's parallel machinery

Notebook

IPython Notebook is a web-based interactive computational environment for creating IPython notebooks. An IPython notebook is a JSON document containing an ordered list of input/output cells which can contain code, text, mathematics, plots and rich media.

IPython notebooks can be converted to a number of open standard output formats (HTML, HTML presentation slides, LaTeX, PDF, ReStructuredText, Markdown, Python) through 'Download As' in the web interface and 'ipython nbconvert' in a shell.

IPython Notebook workflows
IPython Notebook interface

IPython Notebook provides a browser-based REPL built upon a number of popular Open Source libraries:

IPython Notebook connects to an IPython kernel. As of the 2.3 release[4][5] (October 2014), there are currently over 21 IPython-compatible kernels for as many programming languages, including Python, R, Julia and Haskell.[6]

IPython Notebook was added to IPython in the 0.12 release[7] (December 2011). IPython Notebook has been compared to Maple, Mathematica, and Sage.

IPython notebooks frequently draw from SciPy Stack [8] libraries like NumPy and SciPy, often installed along with IPython from one of many Scientific Python distributions.[8]

Other features

IPython allows non-blocking interaction with Tkinter, PyGTK, PyQt/PySide and wxPython (the standard Python shell only allows interaction with Tkinter). IPython can interactively manage parallel computing clusters using asynchronous status callbacks and/or MPI. IPython can also be used as a system shell replacement.[9] Its default behavior is largely similar to Unix shells, but it allows customization and the flexibility of executing code in a live Python environment.

In the media

IPython has been mentioned in the popular computing press,[10] and it has a presence at scientific conferences.[11] For scientific and engineering work, it is often presented as a companion tool to matplotlib.[12]

Grants and awards

Beginning Jan 1, 2013, the Alfred P. Sloan Foundation is going to support IPython development for two years.[13]

On March 23, 2013, Fernando Perez was awarded the Free Software Foundation Advancement of Free Software award for IPython.

In August 2013, Microsoft made a donation of $100,000 to sponsor IPython’s continued development.[14]

In January 2014, it won the Jolt Productivity Award[15] from Dr. Dobb's in the category of coding tools.

See also

References

External links