Table of Contents
So if you've been using Python for some time now, you've probably heard of iPython. This is pretty much the go to shell for most pythonistas who want to get a better command line debug experience. I find
ipdb to be a godsend when I'm quickly trying to diagnose the problem.
But what about when you're trying to explore a library or even write some code quickly with plenty of auto-completion, or perhaps quickly demonstrate something, you might want to chose
bpython. And if you wanted the best of both worlds, both
bipython. But first, lets take a look at what
bpython can offer us:
bpython works on
*nix systems with ease, for windows users all you need to is use this installer to install the package. But
*nix users, its much simpler:
pip install bpython
In my tests
bpython worked with both python 2 and python 3 as well as pypy because its written in pure python and the only dependency
bpython has is on
Once you've installed
bpython, you can then just involve it from the command line:
- The first thing I learn to do with any shell or any new software for that matter is how to get out out of it. The best way to get out of
bpythonis just to hit
D, and that will take you out.
bpythonwill automatically add the contents of your session to your console.
- You can save you session with
- You can clear the
I love code completion. How can you not love something that pretty much writes your code for you? As a person who's always looking out for better tools,
bpython hits the spot. It's got the best code completion I've seen in any shell, it even puts
fish to shame:
What I love about
bpython is how fast the code completion pops up and the way documentation just pops up when you want to use a function.
When I'm trying to reproduce something on the command line, I often make mistakes (although with
bpython's code completion it's a lot harder to do). I'm trying to import
>>> import asycnio Traceback (most recent call last): File "<input>", line 1, in <module> ImportError: No module named 'asycnio'
Now, when you're trying to send a console session to someone, these mistakes are not only annoying but also can get in the way of the person trying to help you, so you can just redo the last line with
Please note that this does not negate what you did, it just clears the screen of the last command that you input. So if you imported
datetime, but you actually wanted to import
requests (yes, I don't know how to spell but bear with me), then
datetime will still be usable from the shell:
These are just some of the awesome things you can do with
bpython. There's probably more. I don't know them all since I'm still exploring what you can do with it.
You can find out more about by talking to the guys on their
irc.freenode.net. Find out more about the community around
I initially though that
bpyhon was not properly maintained, but if you take a look at their project page, it seems that its being kept up to date:
Well you'd have to use
bipython then. Its still in the works, and there's no proper highlighting for errors right now like in
ipython, but its heading towards being a package that unifies both
bpython. So, you need to install
pip install ipython bipython
And you're done with the installations but running
bipython is not as simple. At this time,
bipython does not work with python 3, but it does work with python 2. Have a look:
Last Updated on 15 Nov 2014 1:11 PM
Information about bipython added.