Skip to main content

IPython: Productive Interactive Computing

Project description

IPython provides a rich toolkit to help you make the most out of using Python interactively. Its main components are:

  • Powerful interactive Python shells (terminal- and Qt-based).

  • A web-based interactive notebook environment with all shell features plus support for embedded figures, animations and rich media.

  • Support for interactive data visualization and use of GUI toolkits.

  • Flexible, embeddable interpreters to load into your own projects.

  • A high-performance library for high level and interactive parallel computing that works in multicore systems, clusters, supercomputing and cloud scenarios.

The enhanced interactive Python shells have the following main features:

  • Comprehensive object introspection.

  • Input history, persistent across sessions.

  • Caching of output results during a session with automatically generated references.

  • Extensible tab completion, with support by default for completion of python variables and keywords, filenames and function keywords.

  • Extensible system of ‘magic’ commands for controlling the environment and performing many tasks related either to IPython or the operating system.

  • A rich configuration system with easy switching between different setups (simpler than changing $PYTHONSTARTUP environment variables every time).

  • Session logging and reloading.

  • Extensible syntax processing for special purpose situations.

  • Access to the system shell with user-extensible alias system.

  • Easily embeddable in other Python programs and GUIs.

  • Integrated access to the pdb debugger and the Python profiler.

The parallel computing architecture has the following main features:

  • 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.

  • Both blocking and fully asynchronous interfaces.

  • High level APIs that enable many things to be parallelized in a few lines of code.

  • Share live parallel jobs with other users securely.

  • Dynamically load balanced task farming system.

  • Robust error handling in parallel code.

The latest development version is always available from IPython’s GitHub site.

Project details


Release history Release notifications | RSS feed

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page