[Python-Dev] PEP 394: Allow the `python` command to not be installed (and other minor edits)

Guido van Rossum guido at python.org
Fri Apr 27 22:34:10 EDT 2018


Um, the PEP has "Unix-Like Systems" in its heading, so discussing the
Windows situation seems out of scope to me.

You're one of its authors, so if you really want to keep the paragraph
about the anticipated unified future we can keep it (though preferably this
should be discussed in the issue, https://github.com/python/peps/pull/630).
But I think this PEP is strongest in its guidelines for what distros and
sysadmins should do *today*; I feel that that paragraph encourages hopes
about a future that's farther away than most people care to plan, and not
at all certain.

On Fri, Apr 27, 2018 at 6:23 PM, Nick Coghlan <ncoghlan at gmail.com> wrote:

> On 28 April 2018 at 01:37, Petr Viktorin <encukou at gmail.com> wrote:
>
>> Hello,
>> After discussion on the [Pull Request], my update to PEP 394 changed
>> scope somewhat. The new major changes are:
>>
>> - The `python` command may not exist at all in some cases (see the PEP
>> for details)
>> - The paragraph about the anticipated future where python points to
>> Python 3 is removed. (We'd rather see a future where `python` doesn't exist
>> and one always has to specify `python2` or `python3`.)
>>
>
> That isn't currently *my* desired future, as I don't want to see a python3
> to python4 naming transition at any point, I want a transition from python3
> back to an unqualified name to accurately reflect the change in version
> management philosophy resulting from the extended Python 3 migration. (And
> then "python3" would linger solely as a backwards compatibility remnant,
> even if it referred to python 4+, or a switch to some kind of CalVer based
> versioning scheme)
>
> However, it may be possible to solve two problems at once here, as one of
> the issues we have in writing cross-platform instructions for both Windows
> and *nix systems is that "python" isn't guaranteed to be on the Windows
> path, but the "py" launcher *is*. This means the most robust tooling
> invocations on Windows are of the form "py -m pip ...", since they don't
> care about how your system PATH is configured. Getting not only "python",
> but also scripts installed with "py -m pip install --user..." to be
> reliably on the PATH is an arcane problem with assorted complications
> stemming from the differences between per-machine and per-user
> installations of Windows applications, and the "py -m module ..." approach
> avoids that mess entirely (as long as the tools of interest correctly
> support invocation via "-m").
>
> The downside of those instructions is that it means we have a platform
> split where, depending on how your system is setup, which version of Python
> you're using, and whether or not you're running in a virtual environment,
> you need to invoke Python from the command line as one of:
>
> - python
> - python3
> - py
>
> (more details at https://github.com/pypa/python-packaging-user-guide/
> issues/396 )
>
> Thanks for everyone involved, especially Guido for pitching in with the
>> intended direction -- which was not clear from (or is genuinely different
>> from) the 7-year-old PEP!
>>
>
> It's a change, and not one that's been explicitly discussed with the
> current authors of the PEP yet (although I do see that Barry has chimed in
> on the PR).
>
> I think it's a reasonable way for us to go, *if* it's accompanied by an
> explicit decision that we want to drive cross-platform convergence around
> "py" as the convention for unqualified version independent access to a
> Python interpreter (regardless of whether or not a virtual environment is
> active or not)
>
> The key missing piece for doing that would be to define how we'd want a
> `py` launcher to work on *nix systems, and then provide that as part of
> CPython 3.8+ (and potentially backport it to a 3.7x maintenance release).
>
> Cheers,
> Nick.
>
> P.S. Note that on Windows, `py` always refers specifically to the launcher
> (it doesn't get shadowed in virtual environments), but the launcher itself
> is virtual environment aware (see https://www.python.org/dev/
> peps/pep-0486/ for details).
>
> --
> Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia
>
> _______________________________________________
> Python-Dev mailing list
> Python-Dev at python.org
> https://mail.python.org/mailman/listinfo/python-dev
> Unsubscribe: https://mail.python.org/mailman/options/python-dev/
> guido%40python.org
>
>


-- 
--Guido van Rossum (python.org/~guido)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20180427/170ba1d6/attachment-0001.html>


More information about the Python-Dev mailing list