... (Hm, would it be totally outrageous to let Python itself on Windows check for a #! line, and when there is one that names an existing Python interpreter that's not the current one, simply exec that one on top of the current one???)
No, but how to name an existing interpreter is a problem: people don't install Python in the same locations, so an absolute path wouldn't be portable. At least for the PythonLabs and ActiveState distros, we could use the version number to look up the installation path in the Windows registry (the PLabs and AS installers create registry entries to record this info, under a key path with major.minor in its name, although the PLabs distro has never used this info; I believe the PythonWare distro doesn't set any info in the registry).
Absolute paths aren't portable on Unix either, although
# ! /usr/bin/env python2.2
I wouldn't mind if users who need this feature would be required to know where their interpreter lives. But I wouldn't mind a registry-based solution either:
# ! python2.2
could mean "find Python 2.2 in the registry".
I believe the PythonWare distro always installs in the same place, so if Fredrik thinks this will be useful, we could provide a hack that looks in certain places on the filesystem if no registry key is found.
Still, I'd prefer to do the simplest thing that could possibly work, which IMO would be just an absolute pathname. It makes it possible for a specific script to request a specific interpreter. If you want fancy, you can create an installer that figures out the right path and sticks it in the #! line of scripts that need it at install time.
--Guido van Rossum (home page: http://www.python.org/~guido/)