Запуск сценария python с терминала без расширения .py

Я хочу вызвать скрипт python script.py из терминала, просто набрав скрипт . Это возможно? Если да, то как?

Я знаю, что могу избежать ввода python script.py , добавив #! / Usr / bin / env python в начало скрипта, но мне все равно нужно добавить суффикс .py для запуска скрипта.

3 Solutions collect form web for “Запуск сценария python с терминала без расширения .py”

Файловые системы Unix / Linux не полагаются на расширения, как это делают окна. Вам не нужно использовать .py в конце файла для его запуска.

Вы можете запустить файл, вызвав его с помощью интерпретатора:

 python ScriptFile 

Или путем маркировки его исполняемого файла и определения интерпретатора в первой строке (например, #!/usr/bin/python ).

Если вы не можете выполнить файл с помощью:

 /Path/to/ScriptFile 

проверить разрешения с помощью

 ls -l ScriptFile 

Вам может потребоваться добавить исполняемый флаг и chmod чтобы он выполнялся для вас.

Если вы регулярно используете настраиваемые сценарии, вы можете захотеть убедиться, что каталог, в котором они хранятся, добавлен в PATH среды PATH .

Для запуска скрипта не .py расширение .py . Вам нужно только сделать исполняемый файл сценария (например, запустив chmod a+x script ) и добавить строку shebang ( #!/usr/bin/env python ).

В качестве опции вы можете создать оболочку для своего скрипта (файл .py ):

Например, у вас есть скрипт runme.py чтобы вы могли создать новую файловую runme для runme скрипта:

 #!/usr/bin/env python import runme 

а затем вызовите функцию runme.py просто вызвав runme в оболочке.

Это полезно для многоплатформенных скриптов, поэтому на платформе Windows вы можете назначить файлы .py для вызова только по имени без расширения и shebang в заголовке, но на платформе Linux вы не можете и, таким образом, обертка выходит.

  • Получение ошибок Python всякий раз, когда я пытаюсь использовать терминал в Linux Mint
  • прослушивать событие кнопки питания в Python (без ACPI)
  • Предварительный автолог через 2 jumphost / passphrase
  • Извлечь значение смещения ntpdate в переменной в python
  • Прочитать текстовые строки между двумя строками
  • systemd: Почему эта служба неактивна (мертва)?
  • Подождите, пока появится окно X (исчезнет)
  • как выполнить команду bash в скрипте python
  • Переменная Path и скрипт скрипта не будут запускать правильную версию python
  • Служба Systemd Python не отправляет весь вывод в syslog
  • Сравнение Python и Bash
  • FreeBSD: невозможно установить Python 2.7
  • Linux и Unix - лучшая ОС в мире.