#!/usr/bin/env python
If you do, then `python2` or `python3` will be around, and you should specify them explicitly instead of `python`. I'm happy to be corrected on this one, but I always slap this at the top of my scripts: #!/usr/bin/env python3
I'm not aware of anywhere that wouldn't invoke a Python 3 interpreter if one is installed.The original post just seems like one big faff.
Command 'python' not found, did you mean:
command 'python3' from deb python3
command 'python' from deb python-is-python3
https://packages.ubuntu.com/focal/python-is-python3https://www.python.org/dev/peps/pep-0394/
"The python command should always invoke Python 2 (to prevent hard-to-diagnose errors when Python 2 code is run on Python 3)."
So there was indeed a time where the mentioned scenario was possible.
Edit: love those people who got to downvote reality. At no point was python pointing to either 2 or 3 will-nilly, but there was always a PEP specifying best practice behaviour.
The current version of PEP 394 says:
] If the python command is installed, it is expected to invoke either the same version of Python as the python3 command or as the python2 command.
] Distributors may choose to set the behavior of the python command as follows:
python2,
python3,
not provide python command,
allow python to be configurable by an end user or a system administrator.
The part you quoted is from the section "History of this PEP". Just before your quoted text is:] This PEP originally provided a very simple mechanism ...
and just after it is:
] However, these recommendations implicitly assumed that Python 2 would always be available.
This historic advice is no longer recommended.
The change was made on July 5, 2019 - https://github.com/python/peps/commit/ae932bd6fd2c493d7d64ce... .
Or theoretically also the other way around.