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
Из ^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
).
Сделайте это, затем попробуйте свой скрипт Python:
$ tr -d '\r' < test.py > newtest.py
Этот удаляет возврат каретки, созданный из Windows
. Для дальнейшего чтения Удалить Windows возврат каретки с tr