[IPython-dev] Comments on IPython Qt widgets

Robert Kern robert.kern at gmail.com
Mon Feb 7 23:25:54 EST 2011


On 2011-02-07 22:15 , Brian Granger wrote:
> Charlie,

>> - Currently, the only IPython kernel available for use with the Qt widget
>> runs the IPython interpreter in a separate process.  For QGIS, it would be
>> very nice to have the option of running an IPython kernel inside the same
>> process as the Qt widgets.  IPython would then have direct access to the
>> QGIS interface and would be able to inspect and operatie on the PyQt4
>> objects that compose the GUI providing a powerful tool for users performing
>> spatial analysis and developers building plugins.
>> Are there any plans to develop IPython kernels that do not run
>> in separate processes?  I spent a few days trying to build one myself by
>> wrapping an InteractiveShell, but I feel like I am flailing a little bit
>> when it comes to creating a kernel_manager that will integrate with the Qt
>> frontend.  If anyone has any design advice on how to implement an in-process
>> kernel I would love to hear it.
>
> There is interest in having an in process IPython, but I honestly
> think it will not work very well at all.  This is mostly because of
> the GIL.

I don't see why. The shell may block. This is not a big deal. This is what 
people expect of shells embedded in apps.

> I would simply turn the model inside out.  If you run the
> QGIS code that has all the PyQt widgets in the IPython kernel (start
> the kernel with the pyqt event loop running using --pylab qt) your
> ipython session will have all the access that it needs.  IOW, don't
> embed IPython in your app, embed your app in IPython.

This is not an option for most such apps.

-- 
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless enigma
  that is made terrible by our own mad attempt to interpret it as though it had
  an underlying truth."
   -- Umberto Eco




More information about the IPython-dev mailing list