On 16.02.19 00:15, Gregory P. Smith wrote: > On Thu, Feb 14, 2019 at 9:29 AM Barry Warsaw <ba...@python.org> wrote: > >> On Feb 13, 2019, at 23:08, Matěj Cepl <mc...@cepl.eu> wrote: >> >>> Is this relevant to the discussion at hand? We are talking about >>> the binary /usr/bin/python3 which will be surely be provided >>> even by Python 4, won't it? >> >> Why would it be? Since this is all hypothetical anyway <wink>, I’d more >> likely expect to only ship /usr/bin/python. >> > > Because nobody can use 'python' and expect that to be anything but a 2and3 > compatible interpreter for the next 5+ years given we live in a world where > people routinely have a very real need to write #! lines that works with > obsolete distributions. python3 implies >=3.x, thus python 4, 5, 6, 2069, > 3001, and 90210 should all have python3 point to them. realistically > people will stop referring to python3 by 2069 so we could consider removing > the recommendation at that point. > > 2020 is not the end of use or end of importance for Python 2. It is merely > the end of bugfixes applied by python-dev. > > A thing I want to make sure we _don't_ do in the future is allow future > pythonN binaries. python4, python90210, etc. those should never exist. > python, python3, and pythonX.Y only. If we were ever to go back on our > promise and create another world-breaking python version, it could get its > own canonical binary name. But we're specifically planning _not_ to make > that mistake again. > > I suspect most of my opining below will be contentious to multiple people > because I describe a state of the world that is at conflict with decisions > multiple independent distros have already made. Accept their mistakes and > move on past it to the hack in that case: > > A new "py" launcher isn't going to solve this problem - it is separate and > should be its own PEP as it has its own set of requirements and reasons to > be considered (especially on platforms with no concept of a #!). Recommend > "py" today-ish and nobody can rely on it for at least 10+ years in a wide > support cross platform scripting type of situation because it won't be > present on the obsolete or long term supported things that people have a > need for such #!s to run on. > > Not our problem? Well, actually, it is. Matthias speaking for Debian > suggesting they don't want to have "python" at all if it isn't a synonym > for "python2" because it'll break software is... wrong. If software is not > 3 compatible and uses "python", it'll also break when python is python3. > Just in a different manner. "python" should point to python3 when a distro > does not require python2 for its core. It should not _vary_ as to which of > 2.7 or 3.7 it will point to within a given stable distribution (installing > python2.7 should never suddenly redirect it back to python2). But "python" > itself should always exist when any python interpreter is core to the OS. > That means if a distro no longer requires python2 as part of its base/core > but does require python3... "python" must point to "python3". If a posixy > OS no longer requires python at all (surely there are some by now?) the > question of what python should point to when an OS distro supplied optional > python package gets installed is likely either "nothing at all" or ">=3.x" > but should never be decided as "2.7" (which sadly may be what macOS does).
There is no notion of a "core" for Debian. So "core" applies to the whole distro, as long as there are python shebangs found. For Ubuntu, you don't have a python command on the default desktop install, just python3. Trying to invoke python, command-not-found tells you: $ python Command 'python' not found, but can be installed with: [...] You also have python3 installed, you can run 'python3' instead. That tells you which way to go. > Do we already have LTS _stable_ distributions making that mistake today? > If so they've done something undesirable for the world at large and we're > already screwed if that distro release is deemed important by masses of > users: There is no way to write a *direct* #! line that works out of the > box to launch a working latest version Python interpreter across all > platforms. If you count the above example towards this "mistake", probably yes. But there is *no* way to have a sane way to have what you want. Matthias _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com