понедельник, 12 июля 2021 г.

Запуск скрипта python без указания программы транслятора

Скрипт Python можно запустить из командной строки Linux, например, таким образом:
# python3 script.py 

При этом файл script.py должен находиться в директории в которой находиться пользователь. В начале команды указывается интерпретатор, который должен обработать файл с программой. Но можно сделать скрипт исполняемым (chmod +x script.py) и добавить в начало файла специальную строчку описывающую, как исполнять программу данного файла. Эта строка должна начинаться с символов #!, которые вместе называются shebang (шебанг) и содержит путь к программе интерпретатора.
Например, первая строка может быть такой: #!/usr/bin/python3.

В этом случае запуск скрипта может выполняться так:
# ./script.py

После запуска скрипта таким образом часто возникает ошибка:
-bash: ./script.py: /usr/bin/python3^M: неверный интерпретатор: Нет такого файла или каталога
Это связано с тем, что символы переноса строки были созданы в ОС, отличной от Linux. В Linux в редакторе MCEDIT они отображаются так:

В Sublime Text 3 при использовании расширения RawLineEdit символы завершения строки отображаются так:

Если стереть эти символы (по крайней мере в первой строке), то скрипт будет выполняться без ошибок.

Комментариев нет:

Отправить комментарий