[Tim Peters]
The globals set up for running the script appear not to contain a '__file__' key, and have a '__name__' key explicitly set to None. If it set either of these to something useful, or didn't have a '__name__' key explicitly set to None, warning.warn() would have been able to make up *something* for warn_explicit's filename and/or module arguments.
[Evan Simpson]
Argh. Scripts need a __name__ defined, or various activities choke. It can't be the Id of the Script, since that can contain '.', which screws up imports in the Script.
Since that's mondo obscure, let's point to your explanation: http://mail.python.org/pipermail/python-dev/2004-January/041749.html That's especially worth reading because of Guido's profusely apologetic response <wink -- "Too bad.">.
It can't be None, since that will cause this problem.
Are there hidden gotchas lurking around giving all Scripts the __name__ "Script (Python)"? Other suggestions?
I don't really know about Python Script, I've been talking about what Python's warnings module does. Perhaps you could use the Id of the script as __name__ after Id.replace('.', '-') (i.e., get rid of the dots)? Or it *looks* like you could leave name None, but set '__file__' to something (non-None) explicitly.