У меня есть Python script script.py
, который был определен как исполняемый файл и начинается со следующего ша-банга:
#!/usr/bin/env python -W all
Но когда я его вызываю из оболочки, это то, что я получаю:
$ ./script.py
/usr/bin/env: python -W all: No such file or directory
Вызов его напрямую работает, хотя:
$ env python -W all script.py
... some good stuff happens here
Что я здесь делаю неправильно?
На линии shebang вы получаете только один аргумент. Поэтому python -W all
передается в env
как один аргумент. В командной строке оболочка правильно анализирует аргументы перед вызовом env
.