[Python-Dev] [PEPs] Support the /usr/bin/python2 symlink upstream
Mark Hammond
skippy.hammond at gmail.com
Mon Mar 7 06:19:13 CET 2011
On 7/03/2011 3:30 PM, Glenn Linderman wrote:
> I'm only against the overhead of a helper written in Python, since it
> would have to launch Python (some explicit version) to run the helper
> script, and then launch the "right" version of Python to execute the
> real script. You mention a thin executable wrapper, and I have no
> problem with the overhead of that, probably.
Yeah - I think any such wrapper could be a reasonably small C program -
although I guess that depends on the decided functionality :)
...
> Since Windows does not use a #! line, then the solutions for (2) must be
> different. The ones that I can think of are:
>
> (A) declare the Python version in the name of the script file. By doing
> so in the extension, additional Windows associations could be created to
> launch different versions of Python. Switching versions would be as
> simple as renaming the file, changing the extension to include a
> different version. However, various tools would have to learn about
> additional extensions that mean Python (syntax directed editors, etc.)
> And it would be hard to have a script in a module, unless the importer
> recognized all those extensions too. So this "solution" has ripple
> effects that make it unattractive, although it is simple to implement
> the basic feature.
Agreed - I find this unattractive.
> (B) declare the Python version in the content of the script file. This
> cures most of the ripple effects of the above, but requires a "launcher"
> or "wrapper" program to be designed, implemented, and installed. There
> are a variety of subsolutions for different ways of declaring the version.
<snip a few options>
Without putting too much thought into it, I think a simple scheme could
work where the path must either be "/usr/bin/python[23]?" or a
fully-qualified path to a Python executable. IIUC, this should allow
most scripts to have a shebang line that "does the right thing" on *nix
and Windows systems while still offering maximum flexibility on Windows.
> By default, for Python, the wrapper would get associated only with .py
> files.
There would probably also need to be the same for ".pyw", but it would
be almost identical to the .py handling.
Cheers,
Mark
More information about the Python-Dev
mailing list