[Python-Dev] Support the /usr/bin/python2 symlink upstream

"Martin v. Löwis" martin at v.loewis.de
Sun Mar 6 20:19:47 CET 2011


> 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


More information about the Python-Dev mailing list