Запущение скрипта Python от терминала без .py расширения

Это может быть реализовано со средством передачи DNS, чем действия как очень простой сервер DNS. Популярной реализацией является Dnsmaq, однако это могло бы быть возможно с сервисами как OpenDNS, который может выполнить фильтрацию DNS для Вас.

14
29.12.2011, 01:34
3 ответа

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

Можно петлять любым вызовом его с интерпретатором:

python ScriptFile

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

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

/Path/to/ScriptFile

проверьте полномочия с

ls -l ScriptFile

Вы, возможно, должны добавить исполняемый флаг и chmod это так это выполнится для Вас.

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

21
27.01.2020, 19:50
  • 1
    Файл находится в ~/workspace/python. Я добавил ~/workspace/python к моему пути, я выполнил sudo chmod a+x script.py", и я добавил строку хижины (#!/usr/bin/env Python) к верхней части сценария. Я могу запустить скрипт путем ввода *script.py, но просто ввод сценария не работает. –  jmau5 28.12.2011, 09:03
  • 2
    В unix/linux все - файл и отвечает на его имя файла. Вы не можете назвать Script.py как сценарий. Попытайтесь переименовать файл от script.py до сценария, и он должен устранить Вашу проблему. –  Patrick 28.12.2011, 09:15
  • 3
    Извините, я неправильно понял! Все решенное, Спасибо! –  jmau5 28.12.2011, 09:54

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

5
27.01.2020, 19:50
  • 1
    См. мой комментарий по поводу ответа Patrick. –  jmau5 28.12.2011, 09:04

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

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

#!/usr/bin/env python
import runme

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

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

4
27.01.2020, 19:50

Теги

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