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>