[Python-Dev] #!/usr/bin/env python --> python3 where applicable

Nick Coghlan ncoghlan at gmail.com
Sun Apr 19 01:19:00 CEST 2009

Benjamin Peterson wrote:
> 2009/4/18 Mitchell L Model <MLMLists at comcast.net>:
>> Some library files, such as pdb.py, begin with
>>        #!/usr/bin/env python
>> In various discussions regarding some issues I submitted I was told that the
>> decision had been made to call Python 3.x release executables python3. (One
>> of the conflicts I ran into when I made 'python' a link to python3.1 was
>> that some tools used in making the HTML documentation haven't been upgraded
>> to run with 3.)
>> Shouldn't all library files that begin with the above line be changed so
>> that they read 'python3' instead of python? Perhaps I should have just filed
>> this as an issue, but I'm not confident of the state of the plan to move to
>> python3 as the official executable name.
> That sounds correct. Please file a bug report.

As Kevin pointed out, while this is a problem, changing the affected
scripts to say "python3" instead isn't the right answer.

All that happened with the Python 3 installers is that they do
'altinstall' rather than 'fullinstall' by default, thus leaving the
'python' alias alone. There is no "python3" alias unless a user creates
it for themselves (or a distro packager does it for them).

I see a few options:
1. Abandon the "python" name for the 3.x series and commit to calling it
"python3" now and forever (i.e. actually make the decision that Mitchell
refers to).
2. Remove the offending shebang lines from the affected files and tell
people to use "python -m <module>" instead.
3. Change the shebang lines in Python standard library scripts to be
version specific and update release.py to fix them all when bumping the
version number in the source tree.


Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia

More information about the Python-Dev mailing list