[Python-ideas] Migration of /usr/bin/python to python3

Philipp A. flying-sheep at web.de
Sat Mar 14 14:32:42 CET 2015


the PEP is pretty perfect.

#!/usr/bin/env python_binary_this_script_runs_with

if it runs with python 2: #!/usr/bin/env python2
if it runs with python 3: #!/usr/bin/env python3
if it runs with both: #!/usr/bin/env python

the only thing worth discussing IMHO is if python 3 should start shipping
with *all* symlinks from past 3.x minor versions to the newest minor
version. then we could switch to #!/usr/bin/env python3.4 if it uses e.g.
pathlib and would be sure that the script will work with future versions.
but then again, users can install pathlib for 3.3…
​

Ryan Gonzalez <rymg19 at gmail.com> schrieb am Do., 12. März 2015 um 00:13 Uhr:

> On Wed, Mar 11, 2015 at 5:54 PM, Chris Barker <chris.barker at noaa.gov>
> wrote:
>
>> On Wed, Mar 11, 2015 at 3:41 PM, Gregory P. Smith <greg at krypto.org>
>> wrote:
>>
>>> I think /usr/bin/env is a bad idea to promote. It changes from an
>>> explicit designation of what you need in order to execute to something
>>> being derived from the users $PATH.  It is *less specific* than
>>> /usr/bin/python. For some people that is the goal, but I discourage it.
>>>
>>
>> I don't think the goal is specificity, or lack there of, but a shift in
>> control:
>>
>> Who controls where python is installed?
>>
>> If you put an explicit full path on the #! line, then the script author
>> controls which python is used, AND where it must be installed.
>>
>> If you put /usr/bin env on the #! line, then the script author is saying
>> 'use python", and the script user can have python installed anywhere they
>> want, and can use PATH to tell everything what the default it.
>>
>> I think that _should_ be encouraged -- but ideally with some versioning:
>>
>> #!/usr/bin/env python2
>>
>> or even:
>>
>> #!/usr/bin/env python3.4
>>
>>
> Please, just explicit major versions, not minor ones. python3, not
> python3.4. Just earlier this year I had to fix about 20 scripts that ran
> perfectly on 3.4 but whose hashbang explicitly used 3.1. It sucks.
>
>
>> If any of you remember what a pain it was when RedHat installed system
>> tools with (I think):
>>
>> !#/usr/bin/env python
>>
>> You'll know what a nightmare that was -- you could not upgrade the
>> 'default" python without breaking stuff.
>>
>> So system tools should probably use the full specific path -- the script
>> is tied closely to the environment. But if they had at least put a version
>> in there, it would have worked fine:
>>
>> #!/usr/bin/env python1.5
>>
>> These days, I try to use distutils or setuptools to install scripts, and
>> they can do the right thing to use the correct python to start up anyway...
>>
>> -CHB
>>
>>
>>
>> --
>>
>> Christopher Barker, Ph.D.
>> Oceanographer
>>
>> Emergency Response Division
>> NOAA/NOS/OR&R            (206) 526-6959   voice
>> 7600 Sand Point Way NE   (206) 526-6329   fax
>> Seattle, WA  98115       (206) 526-6317   main reception
>>
>> Chris.Barker at noaa.gov
>>
>> _______________________________________________
>> Python-ideas mailing list
>> Python-ideas at python.org
>> https://mail.python.org/mailman/listinfo/python-ideas
>> Code of Conduct: http://python.org/psf/codeofconduct/
>>
>
> --
> Ryan
> [ERROR]: Your autotools build scripts are 200 lines longer than your
> program. Something’s wrong.
> http://kirbyfan64.github.io/
>
>  _______________________________________________
> Python-ideas mailing list
> Python-ideas at python.org
> https://mail.python.org/mailman/listinfo/python-ideas
> Code of Conduct: http://python.org/psf/codeofconduct/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20150314/1f4f4575/attachment.html>


More information about the Python-ideas mailing list