[Matplotlib-users] Windows7: figure window "not responding"

Strozzi, David J. strozzi2 at llnl.gov
Mon Aug 28 16:47:42 EDT 2017


Sorry for the delay.  Life, work, etc. intervene.  I tried tk backend, failed but in a different way.  Seems to get “farther” in that I can get a plot to render.

* Versions (all very recent from Anaconda): Python: 3.6.2  ipython: 6.1.0  matplotlib: 2.0.2

* My emacs startup has (elpy-use-ipython).

* With backend ‘TkAgg’:

plt.ion()
figure(1)  --> window appears, with buttons on bottom (doesn’t happen with ‘Qt5Agg’ backend.  ipyton prompt works.  But, if I try interacting with the figure window, I get “not responding” in title, and windows’ spinning shell.  If I close the figure window by clicking on the X in upper right, windows says “app not responding.”  Dialog box w/ End Process or Cancel.  End process kills figure and ipython session.

plt.ioff() instead:
figure(1)
plot(1,1)
show()
I get a figure window with a plot, but if I interact with it I get “not responding.”  ipython prompt seems fine.  I can close window from prompt close(1) and ipython fine.

Help appreciated!  I hopefully won’t wait so long to respond.

Thanks,
Dave


From: Thomas Caswell [mailto:tcaswell at gmail.com]
Sent: Saturday, August 19, 2017 2:32 PM
To: Strozzi, David J. <strozzi2 at llnl.gov>; matplotlib-users at python.org
Subject: Re: [Matplotlib-users] Windows7: figure window "not responding"

That is at least all consistent!  The issue as that for what ever reason the input hook is not being set up correctly (which is what lets the GUI event loop spin and process events while the terminal waits for you to type).  With `plt.ion()` the terminal is blocking the process waiting for you to type (which is why the window is not responding), with `plt.ioff()` when you do `plt.show()` the GUI event loop is blocking the process (which is why it works, but you don't get the next prompt back until you close the plot window).  Again, see https://github.com/matplotlib/matplotlib/pull/4779 for a longer pass at explaining how this all works (and I would appreciate feed back about where it does not make sense!).

Try using `tkagg` as the backend, the integration between python and tk in a bit tighter (because it is done in the cpython source).

Which version of IPython and matplotlib are you using (and are you sure that elpy is using the versions you think it is?)?

are you using `(elpy-use-ipython)` or just hacking the python executable path?

You are siting at a very interesting intersection of technology here (emacs + python + GUI + windows).  It might make sense to ask either on the elpy mailing list or the ipython mailing list.

Tom

On Sat, Aug 19, 2017 at 3:28 PM Strozzi, David J. <strozzi2 at llnl.gov<mailto:strozzi2 at llnl.gov>> wrote:
Hi,

* Just subscribed to list.

* Backend: mpl.get_backend() = ‘Qt5Agg’.  I am not committed to this if another one will work.

* “If you get up a window:” I start ipython within emacs (the GNU win32 build, not cygwin), and do figure(1), a figure window appears, but nothing renders, and window title bar says “Not responding.”  If I plot something, it doesn’t appear.

fig is not defined, by default.  I can do fig=gcf().  Then fig.canvas.flush_events() has an interesting effect – the plot appears, but then window title still says “not responding” and when I hover the mouse over the figure window it becomes Windows’ spinning blue circle (the busy symbol, like Mac’s spinning beachball).

“control” is returned to ipython.  I can continue to execute commands there.

* At this point, plt.ioff() doesn’t seem to do anything.  plt.show() does – “not responding” disappears, the figure window works like normal.  Buttons on it work.  But the ipython window is “frozen” no In[] prompt.

OK so this seems like a lot of information.  Maybe we can make progress?

Dave


From: Thomas Caswell [mailto:tcaswell at gmail.com<mailto:tcaswell at gmail.com>]
Sent: Saturday, August 19, 2017 10:54 AM

To: Strozzi, David J. <strozzi2 at llnl.gov<mailto:strozzi2 at llnl.gov>>; matplotlib-users at python.org<mailto:matplotlib-users at python.org>
Subject: Re: [Matplotlib-users] Windows7: figure window "not responding"

David,

Please subscribe to the mailing list so you can post un-moderated.

Which backend are you using?

If you get a window up and then do `fig.canvas.flush_events()` will it update?

If you do `plt.ioff()` and then `plt.show()` does it work?

Tom


On Sat, Aug 19, 2017 at 12:40 PM Strozzi, David J. <strozzi2 at llnl.gov<mailto:strozzi2 at llnl.gov>> wrote:
Thanks for the respone.  Sadly, I can’t get anything useful out of the doc.  And %matplotlib doesn’t help, same effect.

This is very frustrating.  I don’t know how to debug this.  It’s just a “black box”, I do what I’m “supposed to”, doesn’t work.

Help appreciated!
Dave

From: Thomas Caswell [mailto:tcaswell at gmail.com<mailto:tcaswell at gmail.com>]
Sent: Saturday, August 05, 2017 10:36 AM
To: Strozzi, David J. <strozzi2 at llnl.gov<mailto:strozzi2 at llnl.gov>>; matplotlib-users at python.org<mailto:matplotlib-users at python.org>
Subject: Re: [Matplotlib-users] Windows7: figure window "not responding"

I do exactly this as well (but on linux)!

The symptoms your are describing sounds like the GUI event loop is not being spun behind the scenes (see https://github.com/matplotlib/matplotlib/pull/4779 for some draft text at explaining how all of that works).  Have you tried doing `%matplotlib` is IPython?

Tom

On Sat, Aug 5, 2017 at 12:39 PM Strozzi, David J. <strozzi2 at llnl.gov<mailto:strozzi2 at llnl.gov>> wrote:

This problem has been driving me nuts, posted it elsewhere, so far no one's been able to help.  I am running Python 3.6.1 from Anaconda (all packages updated to latest and greatest) on Windows 7.  ipython and mpl figure windows work fine from a console, or spyder.  The problem is when I try running ipython within emacs using elpy.



To back up, the workflow I'm shooting for is using emacs as my IDE, and running python within emacs.  I've done this for many years with the Yorick interpreter, and it's quite addictive.  I get the same problem whether I use the GNU windows build of emacs, or emacs -nw (terminal, no X) from cygwin (ver 25.2 both cases).  elpy seems to be a good Python package for emacs, and nominally supports using ipython.



OK, so - I can use ipython + emacs + elpy.  The only problem is matplotlib figures.  When I do figure(), a figure window appears, but is not fully rendered (e.g. no buttons), and the window title says "Not responding".  If I do a plot(), nothing is plotted.  Playing with ion() and show() doesn't help.



I've posted this on the elpy github, various stackexchange forums, no one has had any ideas yet.



Any help is greatly appreciated!

Dave
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users at python.org<mailto:Matplotlib-users at python.org>
https://mail.python.org/mailman/listinfo/matplotlib-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/matplotlib-users/attachments/20170828/9829bf63/attachment-0001.html>


More information about the Matplotlib-users mailing list