Выполнение скрипта из задачи оболочки

Lubuntu Raring Ringtail. Я хочу иметь возможность выполнять свои скрипты с ./

Я начинаю свой скрипт на Python с #!/usr/bin/python, и он говорит

bash : ./myscript.py: /usr/bin/python^M: bad interpreter: No such file or directory

Если я использую #!/usr/bin/env python, это дает аналогичный ошибка:

: No such file or directory

Что я делаю не так?

У меня абсолютно установлен Python, и я могу запускать сценарии как обычно с python myscript.py

1
задан 16 August 2013 в 08:18

2 ответа

Из ^M видно, что файл myscript.py использует разрывы строк в стиле windows / dos (Windows использует CR LF (возврат каретки + перевод строки) в конце строки. Unix использует только LF - Итак, то, что вы видите как ^M, это CR. Так что вы не используете /usr/bin/python, но /usr/bin/python<CR>, которого не существует.

Вы можете удалить ^M, используя dos2unix (сделайте sudo apt-get install dos2unix установить и затем использовать dos2unix myscript.py).

0
ответ дан 16 August 2013 в 08:18

Сделайте это, затем попробуйте свой скрипт Python:

$ tr -d '\r' < test.py > newtest.py

Этот удаляет возврат каретки, созданный из Windows

. Для дальнейшего чтения Удалить Windows возврат каретки с tr

0
ответ дан 16 August 2013 в 08:18

Другие вопросы по тегам:

Похожие вопросы: