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.
The goal of IPython is to create a comprehensive environment for
interactive and exploratory computing. To support this goal, IPython
has two main components:
- An enhanced interactive Python shell.
- An architecture for interactive parallel computing.
All of IPython is open source (released under the revised BSD license).
Interactive parallel computing
Increasingly, parallel computer hardware, such as multicore CPUs, clusters and
supercomputers, is becoming ubiquitous. Over the last 3 years, we have
developed an architecture within IPython that allows such hardware to be used
quickly and easily from Python. Moreover, this architecture is designed to
support interactive and collaborative parallel computing.
The main features of this system are:
- Quickly parallelize Python code from an interactive Python/IPython session.
- A flexible and dynamic process model that be deployed on anything from
multicore workstations to supercomputers.
- An architecture that supports many different styles of parallelism, from
message passing to task farming. And all of these styles can be handled
- Both blocking and fully asynchronous interfaces.
- High level APIs that enable many things to be parallelized in a few lines
- Write parallel code that will run unchanged on everything from multicore
workstations to supercomputers.
- Full integration with Message Passing libraries (MPI).
- Capabilities based security model with full encryption of network connections.
- Share live parallel jobs with other users securely. We call this
collaborative parallel computing.
- Dynamically load balanced task farming system.
- Robust error handling. Python exceptions raised in parallel execution are
gathered and presented to the top-level code.
For more information, see our overview of using IPython
for parallel computing.
Portability and Python requirements
As of the 0.11 release, IPython works with Python 2.6 and 2.7. Versions 0.9 and
0.10 worked with Python 2.4 and above. IPython now also supports Python 3,
although for now the code for this is separate, and kept up to date with the
main IPython repository. In the future, these will converge to a single codebase
which can be automatically translated using 2to3.
IPython is known to work on the following operating systems:
- Most other Unix-like OSs (AIX, Solaris, BSD, etc.)
- Mac OS X
- Windows (CygWin, XP, Vista, etc.)
See here for instructions on how to install IPython.