the boldly indiscriminate python interpreter
"...because you shouldn't have to choose."
Two interpreters, both alike in dignity,
In fair Pythona, where we lay our scene,
From ancient grudge break to new mutiny,
Where civil code makes git commits unclean.
From forth the fatal loins of these two foes
A newer kind of stranger's given life;
Whose misadventured piteous overthrows
Doth with its birth bury its parents' strife.
Enter bpython and ipython
I'm a fancy terminal-based interface to the Python interpreter. I give you
inline syntax highlighting and auto-completion prompts as you type, and I'll
even automatically show you a little tooltip with a docstring and parameter
list as soon as you hit ( to make the function call, so you always know
what you're doing! I'm svelte and proud of it - I don't try to do all of the
shenanigans that ipython does with the shell and the web, but the cool kids
love my rewind feature for demos. I strive to make interactive python coding
I'm an awesome suite of interactive computing ideas that work together.
For millennia, I've given you tab-completion and object introspection via
obj? instead of help(obj) in Python. I also have sweet shell features,
special magic commands (%run, %timeit, %matplotlib etc.) and a
history mechanism for both input (command history) and output (results
More recently, I've decoupled the REPL into clients and kernels, allowing
them to run on independent of each other. One popular client is the
IPython Notebook which allows you to write code and prose using a web
browser, sending code to the kernel for execution and getting rich media
results back inline. The decoupling of clients and kernels also allows
multiple clients to interact with the same kernel, so you can hook-up to
that same running kernel from the terminal. The terminal workflow makes
more sense for some things, but my user interface there isn't as polished
By your powers combined... I am bipython!
pip install bipython easy_install bipython
bipython requires ipython, pyzmq, bpython, and urwid.
For now, you'll need to have a running ipython kernel before running bipython. You can do this by either opening a notebook or running ipython console. It won't always be like this, I'll fix it as soon as I can, but it'll be sooner with your help over at ivanov/bipython.
After that, just run bipython and enjoy the ride.
Here's a walkthrough of ipython, bpython, and bipython:
The screencast is 20 minutes long, but here I'll play it back triple speed. There's no sound, and you can pause at any time (lover left corner), seek around (put your mouse over the last line to reveal a progress bar you can click on to go to that portion of the screencast). bipython portion starts 10 minutes in (half-way). You can also select / copy portion of the text as you like. Changing the browser font size in the usual way works, too. (click here if the embed didn't work, or if you want to watch it in real-time, without the speedup).permalink →