Le 15/04/2014 22:12, Nick Coghlan a écrit :
Something that came up during PyCon was the idea of a "py" script that brought "Python Launcher for Windows" explicit version dispatch to Linux.
As a Debian end user and Python developer, I don’t have a need for this; Unixen have shebangs and naming conventions (more or less similar across OSes) for co-installed versions of Python. (“Explicit dispatch” and “cross-platform invocation” don’t tell me much.) I went back and read the beginning of PEP 397 again to find use cases:
This PEP describes a Python launcher for the Windows platform. A Python launcher is a single executable which uses a number of heuristics to locate a Python executable and launch it with a specified command line.
Windows provides "file associations" so an executable can be associated with an extension, allowing for scripts to be executed directly in some contexts (eg., double-clicking the file in Windows Explorer.) Until now, a strategy of "last installed Python wins" has been used and while not ideal, has generally been workable due to the conservative changes in Python 2.x releases. As Python 3.x scripts are often syntactically incompatible with Python 2.x scripts, a different strategy must be used to allow files with a '.py' extension to use a different executable based on the Python version the script targets. This will be done by borrowing the existing practices of another operating system - scripts will be able to nominate the version of Python they need by way of a "shebang" line, as described below.
It seems to me the problem is defined as specific to Windows, and the solution takes inspiration from other operating systems. I think a new rationale explaining why bring back that solution to these other OSes is needed.