问题
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.savedState
I 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?
回答1:
The correct command to run is:
defaults write org.python.python ApplePersistenceIgnoreState NO
This 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.
回答2:
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 NO
I am not sure exactly what this command does, 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 YES
will undo the command if you experience problems.
回答3:
When running an anaconda python distribution, a slightly different write is needed:
defaults write com.continuum.python ApplePersistenceIgnoreState NO
来源:https://stackoverflow.com/questions/18733965/annoying-message-when-opening-windows-from-python-on-os-x-10-8