Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Syntax highlighting, auto complete and more within Python interpreter (bpython-interpreter.org)
65 points by tzury on July 22, 2010 | hide | past | favorite | 31 comments


Also check out DreamPie [ http://dreampie.sourceforge.net/ ], which is damn good, and has a comparable feature list.


I recently started using IPython, also with a comparable feature list: http://ipython.scipy.org/moin/

Does anyone know off the top of their head which of these is the most active?


I suspect IPython is.

I know a number of people using ipython, but I've never heard of the others before today. Ipython is widely used by the scipy crowd, at the very least.


iPython also has ipdb.

    import ipdb
then

    ipdb.set_trace()
Where you'd like to launch ipython in your app.


This is awesome. But the colors seem to interact badly with the terminal backgrounds in Mac OSX. I also can't get any of the function shortcuts (F8 = pastebin) to work; I just get gibberish instead. Also I get a crash when I resize the window:

Traceback (most recent call last): File "/usr/local/bin/bpython", line 8, in <module> load_entry_point('bpython==0.9.7', 'console_scripts', 'bpython')() File "/Library/Python/2.5/site-packages/bpython-0.9.7-py2.5.egg/bpython/cli.py", line 1739, in main banner=banner) File "/Library/Python/2.5/site-packages/bpython-0.9.7-py2.5.egg/bpython/cli.py", line 1636, in curses_wrapper return func(stdscr, args, *kwargs) File "/Library/Python/2.5/site-packages/bpython-0.9.7-py2.5.egg/bpython/cli.py", line 1706, in main_curses clirepl.repl() File "/Library/Python/2.5/site-packages/bpython-0.9.7-py2.5.egg/bpython/cli.py", line 996, in repl inp = self.get_line() File "/Library/Python/2.5/site-packages/bpython-0.9.7-py2.5.egg/bpython/cli.py", line 589, in get_line key = self.get_key() File "/Library/Python/2.5/site-packages/bpython-0.9.7-py2.5.egg/bpython/cli.py", line 567, in get_key self.idle(self) File "/Library/Python/2.5/site-packages/bpython-0.9.7-py2.5.egg/bpython/cli.py", line 1579, in idle do_resize(caller) File "/Library/Python/2.5/site-packages/bpython-0.9.7-py2.5.egg/bpython/cli.py", line 1591, in do_resize curses.endwin() _curses.error: endwin() returned ERR


This is awesome. Just yesterday I was this close to posting an Ask HN looking for a syntax highlighting REPL, and considering writing one myself someday if nobody else does.

My addiction to syntax highlighting can now be satisfied without having to fire up Vim or gedit to edit a script. Maybe if I think hard enough about posting an Ask HN for a syntax highlighting bash command prompt, someone will write one of those, too ;).


I have tested it and it's not bad but the IPython (with "save history" & "virtualenv" plugin) + Dreampie combination is still a lot better and way more powerful.

I use IPython as my main Python shell replacement (this also includes Django development, debugging - (i)pdb, etc.) and Dreampie when writing a prototype or "playing around".


I use and love ipython/ipdb. Do you know if DreamPie or BPython can be used to debug?


My favorite reaction to bpython was showing it to somebody, watching them use it for about 30 seconds, and them watching them alias it to 'python' without even thinking :) It blows the default python interpreter environment out of the water: it remembers history between sessions, autocompletes just about everything, and even has a shortcut for dumping code out to Pastebin.


"... autocompletes just about everything ..."

The problem is it cannot autocomplete this:

def example(a,b):

    a.


Perhaps you'd like a static type system?


My point exactly


Last time I tried out bpython, it seemed to crash at the slightest hint of any error. I'll have to try it again and see if it's improved.


After playing with it for a few minutes, and throwing some intentional errors at it, it seems relatively stable.


This is pretty neat. I turned off auto_display_list and arg_spec (the autocomplete features). I'm not sure if it will replace my normal usage of IDLE, but I definitely dig the syntax highlighting and session history.


This looks very handy. It would be nice if this could be extended to wrap around a Jython shell, presenting a nice way to quickly browse through javadoc info as well.


Is there anything comparable for Ruby? I've looked for a nicer irb in the past, but found nothing. Might be a good weekend project.


For autocompletion add

    require 'irb/completion'
to your ~/.irbrc. If you want auto-indentation:

    IRB.conf[:AUTO_INDENT] = true
If you're a Vim user, you can edit code inside of a Vim buffer with the interactive_editor gem:

    http://vimcasts.org/episodes/running-vim-within-irb/
or for a more SLIMEy experience, you can try ScreenShell, which allows you to send code from Vim in one GNU Screen window to another running irb, or the interpreter of your choice.

    http://news.ycombinator.com/item?id=1098876
If you just want to stick to improving the irb experience, the Pickaxe book has a good section on customizing irb:

    http://ruby-doc.org/docs/ProgrammingRuby/html/irb.html


    * wirble: for syntax highlightning
    * bond: for more advanced autocompletion
    * utilitybelt: for pastebin-like commands
    * sketches: for editing and evaluating code easily
    * boson: command framework for creating libraries of commands to be loaded as needed
    * hirb: framework for associating views per class




Did I miss something? How do I start this thing? Couldn't find it on Documentation..


$ sudo apt-get install bpython

$ bpython

Or similar if you have a different package manager. You can also build from source: http://bpython-interpreter.org/releases/bpython-0.9.7.tar.gz

ie, this isn't something you can run in your browser.


For those mac users out there, Macports is currently at 0.9.6.2.

  sudo port install py26-bpython


Package managers aside, you can run:

    sudo easy_install bpython


or better yet

    sudo pip install bpython

should work anywhere you have pip installed and its the latest version


Fedora users can install it as:

yum install bpython


Wow this is nice. I'd love to have the auto complete in Textmate.


The tutorial video was highly amusing.


I think Eclipse + PyDev has more to offer.


You can't really compare them. Eclipse is a full-featured, lots-of-megabytes IDE. BPython is just steroids for the Python interpreter.




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

Search: