Hello list,<div><br></div><div>I have been playing around with the development branch of IPython (0.11-dev) as they have built a PyQt-based console that supports all sorts of awesome features like tab-completion, paged browsing of function code and docstrings, and Pygments-powered syntax highlighting in addition to the normal IPython goodness.  I slapped together a quick plugin that adds an IPython-based console to QGIS.  The code is available at:</div>

<div><br></div><div>    <a href="https://github.com/Sharpie/qgis-ipython">https://github.com/Sharpie/qgis-ipython</a></div><div><br></div><div>To use it, you will need to install ZeroMQ, pyzmq, pygments and the dev version of IPython from:</div>

<div><br></div><div>    <a href="https://github.com/ipython/ipython">https://github.com/ipython/ipython</a></div><div><br></div><div>The console fires up allright, but unfortunately very, very, very slow.  There is about ~1-2 seconds of lag between invoking a command and receiving a response.  For comparison, I threw together a minimal PyQGIS application that also uses the IPython console:</div>

<div><br></div><div>    <a href="https://gist.github.com/817914">https://gist.github.com/817914</a></div><div><br></div><div>The PyQGIS version is very snappy and there is no lag.  I suspect the difference is due to the PyQt widget is talking to an external IPython process through ZeroMQ.  When a command is executed, the console sends a message and then a Python thread waits for the response.  With PyQGIS, Python is controlling the execution of the entire application.  However, when the console is used as a plugin it is running in an embedded interpreter and it looks like QGIS takes a while to schedule the execution of the Python threads.</div>

<div><br></div><div>Does anyone have any suggestions for solving or working around this issue?</div><div><br></div><div>-Charlie</div>