Matplotlib 1.0.0 hangs in show(), 0.99 does not

This is a re-post from the Matplotlib mailing list. I am running openSUSE 11.2 (x86_64). Matplotlib 1.0.0 (from openSUSE RPMs) hangs in show().

Re: [Matplotlib-users] Confirming problem with matplotlib.pyplot.show()
From: Benjamin Root <ben.root@ou.edu>
To: Paul Leopardi <paul.leopardi@iinet.net.au>
CC: matplotlib-users@lists.sourceforge.net
Date: Yesterday 04:46:25

On Sat, Oct 9, 2010 at 7:41 AM, Paul Leopardi <paul.leopardi@iinet.net.au>wrote:

> On Saturday 09 October 2010 22:58:04 Paul Leopardi wrote:
> > Hello all
> > I am seeing a problem similar to that seen by Jorge Scandaliaris.
>
> I downgraded from matplotlib 1.0.0 to matplotlib 0.99 and my original
> problem no longer appears:
>
> leopardi@linfinit:~/src/Working/Working-0.5.1/glucat/pyclical> rpm -q -a |
> grep matplotlib | sort
> python-matplotlib-0.99.1.1-0.pm.1.8.x86_64
> leopardi@linfinit:~/src/Working/Working-0.5.1/glucat/pyclical> ipython
> -pylab
> Your PyGtk has set_interactive(), so you can use the
> more stable single-threaded Gtk mode.
> See https://bugs.launchpad.net/ipython/+bug/270856
> Python 2.6.2 (r262:71600, Jun 17 2010, 13:37:45)
> Type “copyright”, “credits” or “license” for more information.
>
> IPython 0.10 – An enhanced Interactive Python.
> ? → Introduction and overview of IPython’s features.
> %quickref → Quick reference.
> help → Python’s own help system.
> object? → Details about ‘object’. ?object also works, ?? prints more.
>
> Welcome to pylab, a matplotlib-based Python environment.
> For more information, type ‘help(pylab)’.
>
> In [1]: from mpl_toolkits.mplot3d import Axes3D
>
> In [2]: import matplotlib.pyplot as plt
>
> In [3]: fig=plt.figure()
> /usr/lib64/python2.6/site-packages/matplotlib/backends/backend_gtk.py:621:
> DeprecationWarning: Use the new widget gtk.Tooltip
> self.tooltips = gtk.Tooltips()
>
> In [4]: ax=Axes3D(fig)
>
> In [5]: plt.show()
>
> In [6]: quit()
> Do you really want to exit ([y]/n)? y
> Closing threads… Done.
>
> After upgrading to Matplotlib 0.99: [should say 1.0.0]
>
> leopardi@linfinit:~/src/Working/Working-0.5.1/glucat/pyclical> rpm -q -a |
> grep matplotlib | sort
> python-matplotlib-1.0.0-9.2.x86_64
> python-matplotlib-tk-1.0.0-9.2.x86_64
> python-matplotlib-wx-1.0.0-9.2.x86_64
>
> leopardi@linfinit:~/src/Working/Working-0.5.1/glucat/pyclical> ipython
> -pylab
> Python 2.6.2 (r262:71600, Jun 17 2010, 13:37:45)
> Type “copyright”, “credits” or “license” for more information.
>
> IPython 0.10 – An enhanced Interactive Python.
> ? → Introduction and overview of IPython’s features.
> %quickref → Quick reference.
> help → Python’s own help system.
> object? → Details about ‘object’. ?object also works, ?? prints more.
>
> Welcome to pylab, a matplotlib-based Python environment.
> For more information, type ‘help(pylab)’.
>
> In [1]: from mpl_toolkits.mplot3d import Axes3D
>
> In [2]: import matplotlib.pyplot as plt
>
> In [3]: fig=plt.figure()
>
> In [4]: ax=Axes3D(fig)
>
> In [5]: plt.show()
> ^CERROR: An unexpected error occurred while tokenizing input
> The following traceback may be corrupted or invalid
> The error message is: (‘EOF in multi-line statement’, (206, 0))
>
> ---------------------------------------------------------------------------
> KeyboardInterrupt Traceback (most recent call last)
>
> /home/leopardi/src/Working/Working-0.5.1/glucat/pyclical/<ipython console>
> in
> <module>()
>
> /usr/lib64/python2.6/site-packages/matplotlib/backends/backend_tkagg.pyc in
> show()
> 72 for manager in Gcf.get_all_fig_managers():
> 73 manager.show()
> —> 74 Tk.mainloop()
> 75
> 76 def new_figure_manager(num, *args, **kwargs):
>
> /usr/lib64/python2.6/lib-tk/Tkinter.pyc in mainloop(n)
> 323 def mainloop(n=0):
> 324 “”“Run the main loop of Tcl.”""
> → 325 _default_root.tk.mainloop(n)
> 326
> 327 getint = int
>
> KeyboardInterrupt:
>
> In [6]:
> In [6]: quit()
> Do you really want to exit ([y]/n)? y
>
>
I believe this was a known issue that came about from some fixes made to the
behavior of show() for the 1.0 release. It was patched shortly thereafter
and the maintenance branch was also patched. As a workaround, I believe you
can try one of the other backends or install matplotlib from source.

Does anybody know who maintains the packages for OpenSUSE? It would
probably be prudent to poke them to update.

Ben Root