On Sun, 21 Jul 2019 10:21:55 +1000 Cameron Simpson <c...@cskk.id.au> wrote:
> On 21Jul2019 09:31, Chris Angelico <ros...@gmail.com> wrote: > >On Sun, Jul 21, 2019 at 9:15 AM Cameron Simpson <c...@cskk.id.au> > >wrote: So.... you mean that a tool that depends on running on a > >consistent environment, it should use a shebang of > >"/usr/bin/python3.6" instead of "/usr/bin/env python3"? > > Jeez. No. That is the _opposite_ of what I'm saying. > > >Because, wow, that would be exactly what is > >already happening on my system. Why use /usr/bin/env and then wrap > >something around it to force the environment, when you could just set > >a correct shebang so it properly defines its execution environment? > > Because the shebang is hardwired and inflexible. > > Because it means hand patching (even scripted) a bazillion scripts to > that they know their physical install. > > Because it presumes detailed hardwired knowledge of the target system > in a script which should work anywhere. > > Instead a tiny _common_ shell script resembling this: > > #!/bin/sh > # Run command in the official environment. > exec env - PATH=/path/to/3.6venv/bin:/usr/sbin:/bin exec ${1+"$@"} > > arranges things. The "env -" is aimed at "clean" daemon or install > environments. You can do subtler or less intrusive things in other > settings. > I took a look and found that Fedora 30 and Debian Jessie both use hard-wired paths for python in the rpm resp. deb packages. I'm being new to Python and I am not acquainted in any way with virtualenv resp. venv so cannot currently judge its pro and cons. So I will stick to: #!/usr/bin/env python3 as shebang for my scripts. -- Manfred -- https://mail.python.org/mailman/listinfo/python-list