Proper shebang for python3
Eli the Bearded
* at eli.users.panix.com
Mon Jul 22 17:14:57 EDT 2019
In comp.lang.python, Tim Daneliuk <info at tundraware.com> wrote:
> On 7/20/19 1:20 PM, Chris Angelico wrote:
> > On Sun, Jul 21, 2019 at 4:13 AM Michael Speer <knomenet at gmail.com> wrote:
> >> You may want to use `#!/usr/bin/env python3` instead.
I no longer have one to verify, but I recall Solaris boxen used /bin/env
not /usr/bin/env.
> So, no, do NOT encode the hard location - ever. Always use env to
> discover the one that the user has specified.
But wait, you just hard coded the location of env...
> The only exception is
> /bin/sh which - for a variety of reasons - can reliably counted upon.
BZZZZ! Fully half of my work porting trn4 to my cellphone was fixing all
the places that ancient build system believed /bin/sh was the name of
sh. In that environment (Termux shell on an Android phone) the location
is /data/data/com.termux/files/usr/bin/sh (and env is also in
/data/data/com.termux/files/usr/bin hahaha).
Even on more traditional environments -cough-Solaris-cough- /bin/sh may
exist but be so ancient as to break things that work elsewhere. "^" as
a synonym for "|", is a noteworthy gotcha.
Figuring out where things are on the user's path is a laudable goal, but
do it only at install time, not run time, for consistent runs.
Elijah
------
pathological edge cases -r- us
More information about the Python-list
mailing list