views:

653

answers:

1

I have a python script that uses plt.show() as it's last instruction. When it runs, IDLE just hangs after the last instruction. I get the image but I don't get the prompt back.

On other scripts I typically use ctrl-c to break the program (sometimes doesn't work immediately) but how do I get the prompt back with the plt.show()? Ctrl-c doesn't work...

Are there other ways to stop the program?

This is IDLE on Windows, if it makes any difference.

+1  A: 

I have seen this problem with IDLE and matplotlib when using them on Windows. I don't know the exact cause, but Ctrl-c a couple times has typically worked for me. If that doesn't work for you, you can use the normal interpreter instead of write your plot directly to a file instead of the screen.

This is one of those (plentiful) times when IDLE doesn't behave like a normal Python script or interpreter session. Because of this, I usually avoid IDLE.

Mike Graham
What do you use instead?
greye
Unfortunately, the options on Windows aren't great. I use the interactive interpreter directly (despite cmd.exe not being all that nice) and call Python from gvim to run scripts. Any number of editors and IDEs can call Python directly, and many of them are listed on http://wiki.python.org/moin/IntegratedDevelopmentEnvironments . iPython can suffer from some of the same problems of IDLE, but I suspect it goes out of its way to make matplotlib work (I never use it myself, so I can't promise so).
Mike Graham