Barry Warsaw <ba...@debian.org> writes: > On Jun 23, 2016, at 11:17 AM, Ben Finney wrote: > > >There isn't, AFAIK, anything portable that I can write in the shebang > >to turn a command invocation of ‘./foo/bar.py’ into ‘python3 -m > >foo.bar’. > > Why not just have a file that contains only? > > exec python3 -m foo.bar
Because that's not something I can write in the shebang of an existing Python file, and expect it to work as I move around the directory that contains the file. There's no obvious way to tell the kernel (via the shebang line in the Python file) how to execute this file via a Python interpreter, without hitting the failure scenarios documented in PEP 366. This is unlike Perl. Heck, it's unlike Make and Awk and Sed. The case I'm making is that Python breaks the “put the interpreter command in the shebang, and it'll work” criterion for Python to be called a Unix scripting language. -- \ “I am amazed, O Wall, that you have not collapsed and fallen, | `\ since you must bear the tedious stupidities of so many | _o__) scrawlers.” —anonymous graffiti, Pompeii, 79 CE | Ben Finney