![](https://secure.gravatar.com/avatar/3acb8bae5a2b5a28f6fe522a4ea9b873.jpg?s=120&d=mm&r=g)
I do not like the vagueness about the python link. Sounds like "It may point to this or that, but it might change, and it might break, maybe we'll change our position later, in some years".
I can understand the uneasiness about that, however, the slightly sarcastic phrasing describes the intent precisely. It is deliberate that it may refer to any version. There are many precedents for that; /usr/bin/wish, /usr/bin/perl, or /usr/bin/ruby don't give any version guarantees either. They are still useful, primarily for interactive (REPL) use, or when you write scripts that are specific to a host and meant to be updated when the system gets updated.
This recommendation is imo wrong:
For the time being, it is recommended that python should refer to python2, except on distributions which include only python3 in their base install, or those that wish to push strongly for migration of user scripts to Python 3.
I agree. Your wording is much better ("it can be anything. If you don't like that, use a more specific file name").
Maybe some distributions already did decide on this, but it's definitely not something which will help compatibility across distributions.
The message from the PEP is clear: if you want something to work across systems, don't use /usr/bin/python, but either python2 or python3. So the very existence of the PEP helps compatibility across distributions. As the PEP points out, if some distribution doesn't conform, it's easy for the admin to work around that (i.e. add the missing symlink); this change will fix it "for good" (i.e. for all scripts to come). Notice that this not only works for Linux, but for all unixish systems.
From a Debian/Ubuntu perspective I see python2.7 in the distribution for at least two more (LTS) releases (i.e. the next 4-5 years) to run old code or code abandoned by upstreams. I only see extra work with this code, when changing python to point to python3, while I do not see a disadvantage to use python3 (which was part of python3.x from the beginning) for the packaging inside a distribution.
so -1 on the python link bits.
It is conforming to the PEP to have /usr/bin/python as 2.x "forever" (i.e for at least two LTS releases - in Debian, that *is* "forever"). So Debian can make stronger guarantees than the PEP, and still conform to the PEP. Regards, Martin