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

Benjamin Root ben.v.root at gmail.com
Mon Oct 9 13:20:30 EDT 2017


Just some thoughts... have you roped in any ipython devs into this
discussion? Can you confirm that doing similar things, but outside of
emacs, works as expected? Can you confirm that just simply using ipython
within emacs, but without matplotlib, also works as expected?

Also, now that I think of it, could you also re-confirm exactly which
versions of matplotlib, emacs, and ipython you are using, and where your
matplotlib and ipython were installed from?

Just trying to narrow down the possible sources of issues.

Cheers!
Ben Root


On Mon, Oct 9, 2017 at 1:07 PM, Strozzi, David J. <strozzi2 at llnl.gov> wrote:

> Hi,
>
> Thanks, I did get this response, but consider it too 'convoluted' or
> 'non-standard'.  I think this workflow of running ipython inside emacs
> should "just work" with some set of standard tools, like elpy + ipython +
> matplotlib, and not need one to "roll their own".  Of course Windows may be
> a pretty non-standard misfit but such is life!
>
> Dave
>
> -----Original Message-----
> From: Thibault Marin [mailto:thibault.marin.us at ieee.org]
> Sent: Monday, October 09, 2017 9:54 AM
> To: Strozzi, David J. <strozzi2 at llnl.gov>
> Cc: matplotlib-users at python.org
> Subject: Re: [Matplotlib-users] Windows7: figure window "not responding"
>
> Hi, I thought I replied to that, but I probably failed for some reason.
> Here is my (slightly edited) reply, I hope it helps.
>
> ----
>
> Hi,
>
> Sorry for breaking the thread, I have just subscribed to the list and I
> don't know how to respond to a message that predates my subscription.  I
> hope this messages makes its way.
>
> I believe I have a similar setup (Windows + emacs + Qt5Agg, python 3.5 and
> matplotlib 2+).  I also see freezes when starting ipython from within emacs.
>
> The way I work around that is by using org-mode and ob-ipython (
> https://github.com/gregsexton/ob-ipython).
>
> To work with matplotlib, I do the following:
>
> 1 - Open my org file, which starts with something like:
> ,----
> | #+PROPERTY: header-args :eval no-export :session Python
> |
> | #+NAME: py-startup-0
> | #+BEGIN_SRC ipython :results silent :exports none # %% Standard
> | imports # General import os import sys import re import matplotlib as
> | mpl
> | mpl.use('Qt5Agg')
> | #+END_SRC
> `----
>
> 2 - Execute the source block (move point at the beginning of the
> "BEGIN_SRC line" and C-c C-c)
>
> I then get a warning about the interpreter which I ignore.  Note that it
> sometimes hangs at that point, in which case I use C-g.
>
> 3 - The *Python* buffer then contains the ipython session, in which I can
> use matplotlib: I get not freezes and calls do not block the ipython
> instance.  Note that I have to run `plt.ion()` once to get matplotlib
> figures to show up.  Important note: I often get an error on the first
> command I type in the *Python* shell, so I typically go to the *Python*
> buffer, press enter and ignore the error I may get (I am guessing some line
> return is missing in some previous command sent during the setup).
>
> 4 - I usually write most of my code in org-mode anyway, but after running
> the source block I can open any .py file and work with it ignoring the
> org-mode part.
>
> For completeness, my emacs init file contains the following:
> ,----
> | (when (eq system-type 'windows-nt)
> |       (progn
> |         (setq python-shell-interpreter-args "--simple-prompt -i")
> |         (setq ob-ipython-command "ipython")))
> `----
>
> I hope this helps.
>
> thibault
>
> Strozzi, David J. writes:
>
> > Hope this appears in the thread.  I still haven’t solved this issue,
> trying to bump this to the top of someone’s stack.  No one responded to
> this message.
> >
> > Any help appreciated.  Thanks.
> >
> > Dave
> >
> > From: Matplotlib-users [mailto:matplotlib-users-bounces+strozzi2=
> llnl.gov at python.org] On Behalf Of Strozzi, David J.
> > Sent: Monday, August 28, 2017 1:48 PM
> > To: Thomas Caswell <tcaswell at gmail.com>; matplotlib-users at python.org
> > Subject: Re: [Matplotlib-users] Windows7: figure window "not responding"
> >
> > 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<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"
> >
> > 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
> > _______________________________________________
> > Matplotlib-users mailing list
> > Matplotlib-users at python.org
> > https://mail.python.org/mailman/listinfo/matplotlib-users
> _______________________________________________
> Matplotlib-users mailing list
> 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/20171009/3800e67f/attachment-0001.html>


More information about the Matplotlib-users mailing list