Thanks for your help, Michiel. Two follow up points, one concerning the OSX
backend and one concerning the QT4 backend:
1) A colleague can reproduce the OSX problem we have talked about, but has
never run into it before. We have identical installs of
python/matplotlib/etc through MacPorts, however his OSX plots pop up
automatically without turning interactive plotting on (pyplot.ion()). I did
not have this behavior; show() was required to bring up a plot up until
ion() was called. A fresh install (see item 2) has "fixed" this behavior on
my machine so that our two installs now behave identically.
2) With an understanding of the importance of a +framework install when
using Python/MPL, I wiped my QT4 and pyqt4 installs (again, through
MacPorts) and reinstalled. I also reinstalled MPL. Because I have been
using all of them for some time, I had many old versions installed but not
activated in MacPorts. I removed every old version for all of the programs
listed above and started from scratch. I used the +framework variant (also,
+quartz). Everything seems to work smoothly now. I'm not sure why; was it
the fresh install? was it the +framework variant? This fresh install also
seemed to change the MacOSX backend behavior, however I have done nothing
different with how I installed MPL.
Hopefully, this info is useful to someone down the line. Thanks again to
Michiel for his clarifications and help with the OSX backend; it is one of
the better backends if you are on a Mac!
On Wed, Mar 23, 2011 at 2:34 PM, Michiel de Hoon <mjldehoon@...:
> OK, thanks. I got the same behavior using Python (instead of ipython).
> Non-interactive usage has not yet been implemented in the MacOSX backend.
> We should be able to fix the bug that you found when implementing
> interactive/non-interactive usage for the MacOSX backend.
> --- On *Wed, 3/23/11, Daniel Welling <dantwelling@...>* wrote:
> From: Daniel Welling <dantwelling@...>
> Subject: Re: [Matplotlib-users] Qt4 on OSX
> To: "Michiel de Hoon" <mjldehoon@...>
> Cc: matplotlib-users@...
> Date: Wednesday, March 23, 2011, 12:27 PM
> Greetings again, Michiel. Please excuse my slow response time...
> First, thanks for explaining the Framework stuff; it clarifies situation.
> I'll be sure to never blame the OSX backend where it is not warranted!
> Unfortunately (in terms of easy explanations):
> In : MacOS.WMAvailable()
> Out: True
> Fortunately, I've been able to nail down the problem:
> bash-3.2$ ipython
> Python 2.6.6 (r266:84292, Jan 18 2011, 14:07:55)
> Type "copyright", "credits" or "license" for more information.
> IPython 0.10.1 -- 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.
> In : import matplotlib.pyplot as plt
> In : plt.plot([0,1])
> Out: [<matplotlib.lines.Line2D object at 0x118c6be90>]
> In : plt.show()
> (Here, saving the plot works like normal.)
> In : plt.ion()
> In : plt.plot([0,1])
> Out: [<matplotlib.lines.Line2D object at 0x118c8bc90>]
> (Now, when trying to save the plot, the "save" and "cancel" buttons no
> longer respond. I must kill python from another terminal.)
> So that's the situation with OSX. It's something that comes up frequently
> enough (typically a quick plot turns into a more thorough customization
> followed by the lockup) that TK becomes a more viable option for me though
> OSX is faster and has better file navigation features. Again, if QT4 was
> working, that is certainly my weapon of choice...
> On Mon, Mar 21, 2011 at 7:14 AM, Michiel de Hoon <mjldehoon@... href="http://mc/compose?to=mjldehoon@..." target="_new">http://mc/compose?to=mjldehoon@...>>
> > wrote:
> --- On *Sun, 3/20/11, Daniel Welling <dantwelling@... href="http://mc/compose?to=dantwelling@..." target="_new">http://mc/compose?to=dantwelling@...>>
> >* wrote:
> > The OSX backend used to have a bug where you cannot type a
> > name in the file name text box.Since that has been fixed, ...
> That was not a bug in the MacOSX backend (and therefore was not fixed), but
> is related to how Python is installed on your system: If your Python is not
> a framework installation, it will not interact correctly with Apple's
> windowing manager. This is due to OS X itself and is independent of the
> MacOSX backend.
> I have found a new bug: every so often, when you go to save a file, the
> "save" and "cancel" button stop responding, trapping the user in file saving
> limbo. I'll have to play with it again to figure out what triggers this.
> Can you check if your Python is built as a framework? If it is,
> MacOS.WMAvailable() should return True:
> $ python
> Python 2.7.1 (r271:86832, Mar 12 2011, 13:44:53)
> [GCC 4.0.1 (Apple Computer, Inc. build 5370)] on darwin
> Type "help", "copyright", "credits" or "license" for more information.
> >>> import MacOS
> >>> MacOS.WMAvailable()