/usr/bin/env python запускается в cmdline, дает сбой в строке #!

/usr/bin/env python запускается в cmdline, дает сбой в строке #!

Я пытаюсь сделать скрипт Python исполняемым, добавив следующую «shebang» в первую строку:

#!/usr/bin/env python

но когда я запускаю файл, я получаю:

$ myscript.py
: No such file or directory

Теперь, если я просто попробую envстроку напрямую, она сработает:

]$ /usr/bin/env python
Python 2.6 (r26:66714, May  5 2010, 14:02:39)
etc. etc.

Почему одна и та же строка не выполняется внутри файла, но выполняется успешно за его пределами?

решение1

Вероятно, где-то в строке shebang есть недопустимый символ. Поскольку вы тот, кто его вставил, это, скорее всего, возврат каретки, т. е. ваша строка заканчивается новой строкой и возвратом каретки (или наоборот) — в стиле переноса строк ODS.

Попробуйте использовать dos2unixв своем файле скрипта , чтобы преобразовать все переносы строк только в 0x10(стиль UNIX).

Связанный контент