<div dir="ltr"><div style class="markdown-here-wrapper"><p style="margin:1.2em 0px!important">the PEP is pretty perfect.</p>
<pre style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;font-size:1em;line-height:1.2em;margin:1.2em 0px"><code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-radius:3px;display:inline;white-space:pre;overflow:auto;border-radius:3px;border:1px solid rgb(204,204,204);padding:0.5em 0.7em;display:block!important;display:block;overflow-x:auto;padding:0.5em;color:rgb(51,51,51);background:none repeat scroll 0% 0% rgb(248,248,248)" class="hljs language-bash"><span style="color:rgb(153,153,136);font-style:italic" class="hljs-comment">#!</span>/usr/bin/env python_binary_this_script_runs_with
</code></pre>
<p style="margin:1.2em 0px!important">if it runs with python 2: <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-radius:3px;display:inline">#!/usr/bin/env python2</code><br>if it runs with python 3: <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-radius:3px;display:inline">#!/usr/bin/env python3</code><br>if it runs with both: <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-radius:3px;display:inline">#!/usr/bin/env python</code></p>
<p style="margin:1.2em 0px!important">the only thing worth discussing IMHO is if python 3 should start shipping with <em>all</em> symlinks from past 3.x minor versions to the newest minor version. then we could switch to <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-radius:3px;display:inline">#!/usr/bin/env python3.4</code> if it uses e.g. <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-radius:3px;display:inline">pathlib</code> and would be sure that the script will work with future versions. but then again, users can install pathlib for 3.3…</p>
<div title="MDH:PGRpdj48ZGl2PnRoZSBQRVAgaXMgcHJldHR5IHBlcmZlY3QuPGJyPjxicj48L2Rpdj48ZGl2PmBg
YGJhc2g8L2Rpdj4jITxicj4vdXNyL2Jpbi9lbnYgcHl0aG9uX2JpbmFyeV90aGlzX3NjcmlwdF9y
dW5zX3dpdGg8YnI+YGBgPGJyPjxicj5pZiBpdCBydW5zIHdpdGggcHl0aG9uIDI6IGAjIS91c3Iv
YmluL2VudiBweXRob24yYDxicj5pZiBpdCBydW5zIHdpdGggcHl0aG9uIDM6IGAjIS91c3IvYmlu
L2VudiBweXRob24zYDxicj5pZiBpdCBydW5zIHdpdGggYm90aDogYCMhL3Vzci9iaW4vZW52IHB5
dGhvbmA8YnI+PGJyPjwvZGl2PjxkaXY+dGhlIG9ubHkgdGhpbmcgd29ydGggZGlzY3Vzc2luZyBJ
TUhPIGlzIGlmIHB5dGhvbiAzIHNob3VsZCBzdGFydCBzaGlwcGluZyB3aXRoICphbGwqIHN5bWxp
bmtzIGZyb20gcGFzdCAzLnggbWlub3IgdmVyc2lvbnMgdG8gdGhlIG5ld2VzdCBtaW5vciB2ZXJz
aW9uLiB0aGVuIHdlIGNvdWxkIHN3aXRjaCB0byBgIyEvdXNyL2Jpbi9lbnYgcHl0aG9uMy40YCBp
ZiBpdCB1c2VzIGUuZy4gYHBhdGhsaWJgIGFuZCB3b3VsZCBiZSBzdXJlIHRoYXQgdGhlIHNjcmlw
dCB3aWxsIHdvcmsgd2l0aCBmdXR1cmUgdmVyc2lvbnMuIGJ1dCB0aGVuIGFnYWluLCB1c2VycyBj
YW4gaW5zdGFsbCBwYXRobGliIGZvciAzLjPigKY8YnI+PC9kaXY+" style="height:0;width:0;max-height:0;max-width:0;overflow:hidden;font-size:0em;padding:0;margin:0">​</div></div></div><br><div class="gmail_quote">Ryan Gonzalez <<a href="mailto:rymg19@gmail.com">rymg19@gmail.com</a>> schrieb am Do., 12. März 2015 um 00:13 Uhr:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Wed, Mar 11, 2015 at 5:54 PM, Chris Barker <span dir="ltr"><<a href="mailto:chris.barker@noaa.gov" target="_blank">chris.barker@noaa.gov</a>></span> wrote:<br></div></div></div><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span>On Wed, Mar 11, 2015 at 3:41 PM, Gregory P. Smith <span dir="ltr"><<a href="mailto:greg@krypto.org" target="_blank">greg@krypto.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr">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.</div></blockquote><div><br></div></span><div>I don't think the goal is specificity, or lack there of, but a shift in control:</div><div><br></div><div>Who controls where python is installed?</div><div><br></div><div>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.<br></div><div><br></div><div>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.</div><div><br></div><div>I think that _should_ be encouraged -- but ideally with some versioning:</div><div><br></div><div>#!/usr/bin/env python2</div><div><br></div><div>or even:</div><div><br></div><div>#!/usr/bin/env python3.4</div><div><br></div></div></div></div></blockquote><div><br></div></div></div></div><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div>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.</div></div></div></div><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div></div><div>If any of you remember what a pain it was when RedHat installed system tools with (I think):</div><div><br></div><div>!#/usr/bin/env python</div><div><br></div><div>You'll know what a nightmare that was -- you could not upgrade the 'default" python without breaking stuff. </div><div><br></div><div>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:</div><div><br></div><div>#!/usr/bin/env python1.5</div><div><br></div><div>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...</div><div><br></div><div>-CHB</div><span><font color="#888888"><div><br></div><div><br></div><div><br></div></font></span></div><span><font color="#888888">-- <br><div><br>Christopher Barker, Ph.D.<br>Oceanographer<br><br>Emergency Response Division<br>NOAA/NOS/OR&R            <a href="tel:%28206%29%20526-6959" value="+12065266959" target="_blank">(206) 526-6959</a>   voice<br>7600 Sand Point Way NE   <a href="tel:%28206%29%20526-6329" value="+12065266329" target="_blank">(206) 526-6329</a>   fax<br>Seattle, WA  98115       <a href="tel:%28206%29%20526-6317" value="+12065266317" target="_blank">(206) 526-6317</a>   main reception<br><br><a href="mailto:Chris.Barker@noaa.gov" target="_blank">Chris.Barker@noaa.gov</a></div>
</font></span></div></div>
<br>_______________________________________________<br>
Python-ideas mailing list<br>
<a href="mailto:Python-ideas@python.org" target="_blank">Python-ideas@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-ideas" target="_blank">https://mail.python.org/mailman/listinfo/python-ideas</a><br>
Code of Conduct: <a href="http://python.org/psf/codeofconduct/" target="_blank">http://python.org/psf/codeofconduct/</a><br></blockquote></div></div></div><div dir="ltr"><div class="gmail_extra"><div><br></div>-- <br><div><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div dir="ltr">Ryan</div><div dir="ltr">[ERROR]: Your autotools build scripts are 200 lines longer than your program. Something’s wrong.<br></div><div dir="ltr"><div><a href="http://kirbyfan64.github.io/" target="_blank">http://kirbyfan64.github.io/</a><div style="display:inline-block;width:16px;min-height:16px"> </div></div></div></div></div></div></div></div>
</div></div>
______________________________<u></u>_________________<br>
Python-ideas mailing list<br>
<a href="mailto:Python-ideas@python.org" target="_blank">Python-ideas@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-ideas" target="_blank">https://mail.python.org/<u></u>mailman/listinfo/python-ideas</a><br>
Code of Conduct: <a href="http://python.org/psf/codeofconduct/" target="_blank">http://python.org/psf/<u></u>codeofconduct/</a></blockquote></div>