Hacker News new | past | comments | ask | show | jobs | submit login
Bpython is a fancy interface to Python (bpython-interpreter.org)
88 points by interro on Jan 27, 2013 | hide | past | favorite | 40 comments



It's the first thing i install in my virtualenvs. Much better then the standard interactive console and just works out of the box. If you don't want more then tab completion, docstrings and a working command history between sessions it is great! For more stuff, see ipython.


I see BPython has a list of alternative pretty interpreters listed on its page. iPython (that I know of) and DreamPie (that I don 't know of).

http://bpython-interpreter.org/alternatives/

Can anyone say how they all compare to each other?


There aren't any comprehensive list that I know of which lists the features of each interpreter.

as to bpython vs ipython, last tested it out, bpython still lacked a core feature that ipython has, which is a shell-style history. I can't mention how often I am thinking "hmmm, did'nt I write something like that before", and search backward to find something I wrote a half year ago, or say yesterday...


It always has, with the up arrow. Has a new word search (like ctrl+r) also. Not sure how long the hist is kept though.


You can configure it to store on disk (I believe this is the default).

Why do people keep saying "last time I checked bpython didn't do X" when I can't even remember a time when we didn't offer this feature ? :)


This is a great project that's been posted here on HN a couple of times already. I like this project a lot but I can't use it on my Mac because it swallows all the libedit/readline keyboard shortcuts I've come to expect from any REPL. Shame.


This is one thing I actually have missed - if I'd known about all the nice readline key commands when I first started writing bpython I would've definitely included them. You're welcome to implement this yourself ! Otherwise, I guess it's just a matter of waiting until somebody else has enough time and enthusiasm to do it. Maybe I'll even do it myself one day ...


Anyone know of a fix?


Bpython is good, but IPython with %edit and knowledge of a command line text editor has changed my workflow[1]. I wish more repls had this ability.

[1]: Maybe you can do it Bpython and I'm just not aware.


I don't know what %edit does, but if I guess that it has something to do with an editor, I use this in my dotfiles:

https://github.com/Julian/dotfiles/blob/master/.pythonrc#L55

which is perfectly REPL agnostic.

I prefer bpython over iPython for a bunch of reasons that I can't easily elaborate on from here on my mobile, but is definitely suggest people try them both out.


That's pretty nifty - thanks.

EDIT: Also, I have used bpython, but since I use python more on the data side as opposed to web (or something not data) IPython along with everything else make it too good to not use.


Yeah. That's where ipython probably hits the sweet spot, so that's reasonable.


Hi there. It looks like IPython is definitely the better choice for you - I never wanted to add IDE-like features to bpython; I just wanted it to work the same as the regular shell but with a bunch of nice features on top. If you want something more complex, or something with more specialisation is certain areas then IPython is probably the better choice. Especially with the recent funding they've received I expect it will just get better and better. :)


Quick warning: Bpython crashes if you need to resize the terminal on OS X. And because it truncates the output to what can fit on the screen, it's essentially unusable for things with a long output. (Because if you need to scroll or resize the window to see the full output, it will crash.) It's amazingly good for most things, but occasionally I need to switch back to the default interpreter.


That's a known issue [1], but we weren't able to fix it yet.

[1] https://bitbucket.org/bobf/bpython/issue/65/curses-error-on-...


I can't say I've ever experienced this. I'll certainly try to reproduce when I get home.

Also bpython has a pager (F9), so it's definitely fine for long output. The interpreter also will write all output to stdout on quit, so you can do what you'd like then too.

I can't say I ever use the vanilla interpreter anymore other than when testing a bpython bug.


I just got this when doing print 10xx10000. Sometimes it crashes the first time I resize the terminal, sometimes I need to resize it a few times quickly. If you send me a note I can email you the error I get when it crashes.


I can vouch for us appreciating a bug report. :)

I assume you're using an up-to-date version of bpython ? I remember dealing with this kind of stuff a lot in the past (curses is terrible at this kind of thing) and I had considered it fixed, so please do send us bug reports if possible. (https://bitbucket.org/bobf/bpython/issues?status=new&sta...)


I believe you :). I'm sure they'd appreciate a bug report if you can narrow things down certainly.

Otherwise I'll play around a bit.


Thanks for taking the time to give this info out - looks like you know more about bpython than me. ;)


Also see iPython. Not as pretty but has an astonishing range of capabilities.


+1 (from bpython's author)

They just got a huge funding grant so IPython is definitely one to watch.


ipython can also be pretty at least when using the Qt console, for example it can embed pymatlib plots and sympy formulas inline instead of opening them in a window. I'm not sure whether bpython can do this.


You can install bpython with a simple "pip install bpython". (This isn't immediately obvious from the website.)


I don't know if it's still like that, but last time I checked, I had to invoke

    python -m bpython.cli
instead of just bpython to get autocompletion for packages in your load path. This project hasn't seen any commits since last March. If anyone is up for it, it can really use some help. It's a very promising project and I like it a lot, if only it didn't have those couple of annoyances... Too bad I have no time to contribute, I have 3 projects of my own to deal with...


Hi there, I'm the author of bpython.

First thing's first: I'm not sure when you last tried bpython, but simply running "bpython" will provide import completion for your pwd.

As for there having been no commits since last March, well I'm not sure where you found that information - please see commit history on bitbucket page: https://bitbucket.org/bobf/bpython/commits

I started work on bpython about 5 years ago. These days I essentially don't do any work for it, but there are a couple of people who still take care of issues when they have time. It seems most people are pretty much satisfied with the project. If they aren't, I encourage them to either look at the open issues and try to close some of them, or try an alternative like IPython or DreamPie (IPython specifically just got a huge financial grant for development costs so it should be seeing a lot of work being done on it - should be very interesting to see what those guys do).

Either way, it just seemed a little odd to me to see bpython described as a "promising project" (after citing two falsehoods about the project) when I personally consider bpython as "complete" to a certain extent (and for any sane meaning of the word in software). Sure there are things I'd like to add, but bpython does exactly what I want and I rarely feel that there is something missing.

For those that disagree, either bpython is not for you (there are some great alternatives), or it is time to fork the project and send us your pull requests - we'll be very grateful for them. :)

Thanks,


I'm finding it extremely buggy. For example - pressing F8 when no code has been entered yet causes a TypeError. I will post this on the mailing list but considering it's an old (~4yrs?) project I'm surprised such issues haven't been fixed.


That's a bug in 0.12 that slipped in before the release. It's fixed in the hg mercurial and there will be a bugfix release soon.


great! I'm using pip to install.


I'm not able to replicate that on my machine.

> bpython version 0.10.1 on top of Python 2.7.3


bpython version 0.12 on top of Python 2.7.3


Tried "pip install bpython" on Windows 7, but I get an ImportError: No module named _curses.


There are instructions to get it working on Windows at [1] and [2]. Please let us know if they work for you.

[1] http://docs.bpython-interpreter.org/windows.html [2] https://bitbucket.org/bobf/bpython/src/0f88fb19ee697096511d5...


For Windows users..."pip install bpython" won't work. You must install the Curses binary. I suggest from here: http://www.lfd.uci.edu/~gohlke/pythonlibs/#curses


This looks like a great way to learn, too! The REPL is a fantastic place to play around.

Awesome.


Just installed it and it is AWESOME! I love the auto indent and auto complete!


Really cool. Does something similar exist for Ruby?



Oh you fancy huh? Nice work!


This is awesome :)




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: