3 Open Source Python Shells
Python is a high-level, general-purpose, structured, powerful, open source programming language that is used for a wide variety of programming tasks. It features a fully dynamic type system and automatic memory management, similar to that of Scheme, Ruby, Perl, and Tcl, avoiding many of the complexities and overheads of compiled languages. The language was created by Guido van Rossum in 1991, and continues to grow in popularity.
Python is a very useful and popular computer language. One of the benefits of using an interpreted language such as Python is exploratory programming with its interactive shell. You can try out code without having to write a script. But there are limitations with the Python shell. Fortunately, there are some excellent alternative Python shells that extend on the basic shell. They each offer an excellent interactive Python experience.
bpython
bpython is a fancy interface to the Python interpreter for Linux, BSD, OS X and Windows.
The idea is to provide the user with all the features in-line, much like modern IDEs, but in a simple, lightweight package that can be run in a terminal window.
bpython doesn’t seek to create anything new or groundbreaking. Instead, it brings together a few neat ideas and focuses on practicality and usefulness.
Features include:
- In-line syntax highlighting – uses Pygments for lexing the code as you type, and colours appropriately
- Readline-like autocomplete with suggestions displayed as you type
- Expected parameter list for any Python function – seeks to display a list of parameters for any function you call
- “Rewind” function to pop the last line of code from memory and re-evaluate
- Send the code you’ve entered off to a pastebin
- Save the code you’ve entered to a file
- Auto-indentation
- Python 3 support
- Website: www.bpython-interpreter.org
- Developer: Bob Farrell and contributors
- License: MIT License
- Version Number: 0.14.2
IPython
IPython is an enhanced interactive Python shell. It provides a rich toolkit to help you make the most out of using Python interactively.
IPython can be used as a replacement for the standard Python shell, or it can be used as a complete working environment for scientific computing (like Matlab or Mathematica) when paired with the standard Python scientific and numerical tools. It supports dynamic object introspections, numbered input/output prompts, a macro system, session logging, session restoring, complete system shell access, verbose and colored traceback reports, auto-parentheses, auto-quoting, and is embeddable in other Python programs.
Features include:
- Powerful interactive shells (terminal and Qt-based)
- A browser-based notebook with support for code, rich text, mathematical expressions, inline plots and other rich media
- Support for interactive data visualization and use of GUI toolkits
- Flexible, embeddable interpreters to load into your own projects
- Easy to use, high performance tools for parallel computing
- Website: ipython.org
- Developer: The IPython Development Team
- License: BSD
- Version Number: 4.0
DreamPie
DreamPie is a Python shell which is designed to be reliable and fun.
DreamPie can use just about any Python interpreter (Jython, IronPython, PyPy).
Features include:
- New concept for an interactive shell: the window is divided into the history box, which lets you view previous commands and their output, and the code box, where you write your code. This allows you to edit any amount of code, just like in your favorite editor, and execute it when it’s ready. You can also copy code from anywhere, edit it and run it instantly
- The Copy code only command will copy the code you want to keep, so you can save it in a file. The code is already formatted nicely with a four-space indentation
- Automatic completion of attributes and file names
- Automatically displays function arguments and documentation
- Keeps your recent results in the result history, for later use
- Can automatically fold long outputs, so you can concentrate on what’s important
- Save the history of the session as an HTML file, for future reference. You can then load the history file into DreamPie, and quickly redo previous commands
- Automatically adds parentheses and optionally quotes when you press space after functions and methods. For example, type execfile fn and get execfile(“fn”)
- Supports interactive plotting with matplotlib
- Support for Python 2.5, Python 2.6, Python 3.1, Jython 2.5, IronPython 2.6, and PyPy
- Extremely fast and responsive.
- Website: www.dreampie.org
- Developer: Noam Yorav-Raphael
- License: GNU GPL v3
- Version Number: 1.2.1