Annoying message when opening windows from Python on OS X 10.8
Emily Wong
Whenever I run a Python script that opens any kind of window on OS X 10.8, whether it's a GLUT window or a QT one or anything else, I get a message that looks like this:
2013-09-11 14:36:53.321 Python[3027:f07] ApplePersistenceIgnoreState: Existing state will not be touched. New state will be written to /var/folders/0x/25_70mj17tb1ypm1c_js8jd40000gq/T/org.python.python.savedStateI use python2.7 installed via MacPorts.
This is a minor annoyance, but I'm curious to know what the message means, and whether there's anything I can do to prevent it. Is it due to a misconfiguration of my system, or does everyone get this?
54 Answers
The correct command to run is:
defaults write org.python.python ApplePersistenceIgnoreState NOThis message appears due to the "application resume" feature in newer versions of OS X. Clearly, this isn't a useful feature for most Python programs (in my case, plotting data with matplotlib), so we can just turn it off with the above command.
For more information on what defaults write is actually doing, check out the man page.
Answering my own question, with thanks to @Steve Barnes for giving me a hint. It seems this problem can be solved with the terminal command
$ defaults write org.python.python ApplePersistenceIgnoreState NOIn the comments, Greg Coladonato reports that, in 2020, running Python 3, this may need to be changed to
$ defaults write org.python.python3 ApplePersistenceIgnoreState NOI am not sure exactly how this command operates, but having done it some time ago I have observed no ill effects.
Note however, that another user has pointed out that this can cause a bug with python 3.4 on mountain lion where tkinter dialogs do not close when a button is pressed as one would expect.
$ defaults write org.python.python ApplePersistenceIgnoreState YESwill undo the command if you experience problems. (Replacing org.python.python with org.python.python3 if needed.)
When running an anaconda python distribution, a slightly different write is needed:
defaults write com.continuum.python ApplePersistenceIgnoreState NO
I am running wxpython 4.1.1 with pyenv and sandbox everything with virtual environments. I am running python 3.9.x The option:
defaults write org.python.python3 ApplePersistenceIgnoreState NO
did not work for me. But,
defaults write org.python.python ApplePersistenceIgnoreState NO
did