[IPython-dev] Detecting GUI mainloop running in IPython
Gael Varoquaux
gael.varoquaux at normalesup.org
Sun Jul 25 16:56:07 EDT 2010
On Sun, Jul 25, 2010 at 10:35:02AM -1000, Eric Firing wrote:
> Although ipython has provided invaluable service to mpl by enabling
> interactive plotting for all gui backends, I am not at all sure that
> this functionality should be left to ipython in the long run. The
> problem is that mpl is used in a variety of ways and environments. Gui
> functionality is central to mpl; it seems odd, and unnecessarily
> complicated, to have to delegate part of that to an environment, or
> shell, like ipython.
Wow, I just did a little experiment, and I really don't understand the
outcome. Please bear with me:
$ ipython
In [1]: !cat /home/varoquau/.matplotlib/matplotlibrc
backend : GtkAgg
In [2]: from pylab import *
In [3]: ion()
In [4]: plot([1,2,3])
Out[4]: [<matplotlib.lines.Line2D object at 0xccb4dac>]
In [5]: from enthought.mayavi import mlab
In [6]: mlab.test_surf()
Out[6]: <enthought.mayavi.modules.surface.Surface object at 0xd58ce0c>
Two things I do not understand:
1) I can interact alright with the Mayavi plot, nice and fine
eventhough there is not wx event-loop running, and I did not
register a InputHook
2) I did not get a segfault, while I am running at the same time GTK
and Wx. This used to be a big no no.
I believe that 1 is due to matplotlib registering an InputHook, but I
cannot find where it is done. Also, does this seems to mean that under
Linux GTK input hooks work for Wx (and they are nicer since they don't
poll).
Anyhow, this is good news, eventhough I don't understand it at all.
Gaël
More information about the IPython-dev
mailing list