[IPython-dev] New zeromq-based console now in trunk

Fernando Perez fperez.net at gmail.com
Tue Sep 28 19:40:18 EDT 2010

Hi all,

We've just pushed the 'newkernel' branch into trunk, so all that the
recent work is now fully merged.  The big user-facing news is a new
application, called 'ipython-qtconsole', that provides a rich widget
with the feel of a terminal but many improved features such as
multiline editing, syntax highlighting, graphical tooltips, inline
plots, the ability to restart the kernel without losing user history,
and more.  Attached is a screenshot showing some of these features.

At this point we know there are still rough edges, but we think the
code is in a shape good enough for developers to start testing it, and
filing tickets on our bug tracker
(http://github.com/ipython/ipython/issues) for any problems you

This is all based on the new ZeroMQ messaging design we've been
discussing, for which updated docs are available here:


We hope that we'll continue to refine this protocol and that now other
clients will be written against it as well (Omar and Gerardo's,
Wendell's, etc).  While we're sure there will be refinements needed,
the qt console is rich and complex enough that we're fairly confident
the core design is sound.  We put a *lot* of thought and work into it,
and all along we felt the design helped us rather than hindered us,
which is typically a sign that the basic ideas are right.

If you want to start playing with this code, you will need (in
addition to IPython trunk):

ZeroMQ and its python bindings, Pyzqm, version 2.0.8:

    * http://www.zeromq.org/local--files/area:download/zeromq-2.0.8.tar.gz
    * http://github.com/downloads/zeromq/pyzmq/pyzmq-2.0.8.tar.gz

The installation instructions for these can be found here:

    * http://www.zeromq.org/area:download
    * http://www.zeromq.org/bindings:python


    * http://www.riverbankcomputing.co.uk/software/pyqt/download

Once installed, run the 'ipython-qtconsole' script. Try --help to see
the different flags you can use to start it, and

When the console opens, *first* type '%guiref' to read a quick
introduction to its basic features.  We'll be happy to answer
questions here, but please make sure you have first read that
document, as we've tried to answer the key points there.  If there are
missing points in that explanation, we want to fix the docs first and

Known limitations:

- currently the qt console can't be configured *at all* (font type,
size, etc).  It's one of our top priorities.

- you can't switch back and forth between inline figures and floating
ones (though pastefig() lets you inline select floating figures, so
it's not too bad).

- we have a bug in our execution flow that breaks history and logging
with multiline input.  Also at the very top of our list.

- you can't call subprocesses with ! if you expect to interact with
them.  This is a fundamental design choice that will stay as such.  If
you need to interact with a  subprocess, call it from a normal
terminal (plain bash or ipython if you want), but making that work
with the GUI console and other design constraints is not feasible
right now.


We'd like to acknowledge the support of Enthought Inc, that made it
possible for Brian and myself to devote a significant amount of time
over the past two months to work on this.  Evan Patterson, who many of
you have by now also met on the list or at conferences, was also part
of this effort thanks to Enthought's support; all the credit for the
beautiful Qt functionality goes to him.  He really did a remarkable
job, and we hope to have him continue participating in IPython
development in the future.


-------------- next part --------------
A non-text attachment was scrubbed...
Name: ipython-qtconsole.png
Type: image/png
Size: 139962 bytes
Desc: not available
URL: <http://mail.python.org/pipermail/ipython-dev/attachments/20100928/f2c3396c/attachment.png>

More information about the IPython-dev mailing list