In comp.lang.python, Tim Daneliuk <i...@tundraware.com> wrote: > On 7/20/19 1:20 PM, Chris Angelico wrote: > > On Sun, Jul 21, 2019 at 4:13 AM Michael Speer <knome...@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 -- https://mail.python.org/mailman/listinfo/python-list