Subsections

Overview

One of Python's most useful features is its interactive interpreter. This system allows very fast testing of ideas without the overhead of creating test files as is typical in most programming languages. However, the interpreter supplied with the standard Python distribution is somewhat limited for extended interactive use.

IPython is a free software project (released under the BSD license) which tries to:

  1. Provide an interactive shell superior to Python's default. IPython has many features for object introspection, system shell access, and its own special command system for adding functionality when working interactively. It tries to be a very efficient environment both for Python code development and for exploration of problems using Python objects (in situations like data analysis).
  2. Serve as an embeddable, ready to use interpreter for your own programs. IPython can be started with a single call from inside another program, providing access to the current namespace. This can be very useful both for debugging purposes and for situations where a blend of batch-processing and interactive exploration are needed.
  3. Offer a flexible framework which can be used as the base environment for other systems with Python as the underlying language. Specifically scientific environments like Mathematica, IDL and Matlab inspired its design, but similar ideas can be useful in many fields.
  4. Allow interactive testing of threaded graphical toolkits. IPython has support for interactive, non-blocking control of GTK, Qt and WX applications via special threading flags. The normal Python shell can only do this for Tkinter applications.

Main features

Portability and Python requirements

Python requirements: IPython requires with Python version 2.3 or newer. If you are still using Python 2.2 and can not upgrade, the last version of IPython which worked with Python 2.2 was 0.6.15, so you will have to use that.

IPython is developed under Linux, but it should work in any reasonable Unix-type system (tested OK under Solaris and the *BSD family, for which a port exists thanks to Dryice Liu).

Mac OS X: it works, apparently without any problems (thanks to Jim Boyle at Lawrence Livermore for the information). Thanks to Andrea Riciputi, Fink support is available.

CygWin: it works mostly OK, though some users have reported problems with prompt coloring. No satisfactory solution to this has been found so far, you may want to disable colors permanently in the ipythonrc configuration file if you experience problems. If you have proper color support under cygwin, please post to the IPython mailing list so this issue can be resolved for all users.

Windows: it works well under Windows XP/2k, and I suspect NT should behave similarly. Section 2.3 describes installation details for Windows, including some additional tools needed on this platform.

Windows 9x support is present, and has been reported to work fine (at least on WinME).

Note, that I have very little access to and experience with Windows development. However, an excellent group of Win32 users (led by Ville Vainio), consistently contribute bugfixes and platform-specific enhancements, so they more than make up for my deficiencies on that front. In fact, Win32 users report using IPython as a system shell (see Sec. 12 for details), as it offers a level of control and features which the default cmd.exe doesn't provide.

Location

IPython is generously hosted at http://ipython.scipy.org by the Enthought, Inc and the SciPy project. This site offers downloads, subversion access, mailing lists and a bug tracking system. I am very grateful to Enthought (http://www.enthought.com) and all of the SciPy team for their contribution.

Fernando Perez 2007-05-09