iPython is an interactive interpreter that allows for object introspection, system shell access, and its own command system for adding interactive functionality. iPython is also embeddable, allowing its use within other programs. iPython has a flexible framework allowing its use as a base environment with Python as the underlying language


There are a few primary features that iPython offers which our framework interface can benefit from. Though I will try to address much of this, for a complete and detailed description please refer to the iPython User Manual.

Dynamic Object Introspection and Namespace Completion

Allowing for an interpreter to have knowledge of its functional interface is a very powerful feature of iPython. With this, along with namespace completion, script developers can easily have knowledge of what is available within their environment. iPython allows for TAB completion of local symbols, filenames, and environment variables.

Command History and Session Logging

Commands that have been issued are available through the command history environment similar to what is offered in Unix shells. This, coupled with system logging and restoring, ensures that a script developer can reissue commands with very little effort. System logging allows for a given state of a session to be restored.

Configuration System

Permanent setting of all comman-line options, module loading, and code execution can be implemented within iPythons flexible configuration system. A base "deployment" configuration can be layered on top of with user customizations.

Extenisble and System Calls

iPython allows for syntax extensions and reconfiguration of its environment (such as reassignment of the prompt for prompt customization). System calls can be made directly from within iPython through special syntax rules.


Implementing an interactive interpreter within an application is offered through a single function call to iPython.

Debugger and Profiler Support

iPython allows for triggers to be set for uncaught exceptions that will invoke the Python debugger (pdb) and drop into the code that triggered the exception. This allows for the script developer to view live data and navigate the stack for bug tracking. Profiling is also offered.

System Requirements

Python version 2.2 or newer is required for iPython.

Example Session

Topic revision: r1 - 2010-01-21, RemyIndebetouw
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding NRAO Public Wiki? Send feedback