Запуск скрипта Python из терминала без расширения .py
14
Я хочу вызвать скрипт python script.py из терминала, просто набрав скрипт . Это возможно? Если так, то как?
Я знаю, что могу избежать ввода python script.py , добавив #! / Usr / bin / env python в начало скрипта, но мне все равно нужно добавить суффикс .py , чтобы запустить скрипт.
Файловые системы Unix / Linux не полагаются на расширения, как в Windows. Вам не нужно иметь .pyв конце файла, чтобы запустить его.
Вы можете запустить файл, вызвав его с помощью интерпретатора:
python ScriptFile
Или пометив его исполняемым и определив интерпретатор в первой строке (например #!/usr/bin/python).
Если вы не можете выполнить файл с:
/Path/to/ScriptFile
проверьте разрешения с
ls -l ScriptFile
Вам может понадобиться добавить исполняемый флаг, и chmodон будет выполняться для вас.
Если вы регулярно используете пользовательские сценарии, вы можете убедиться, что каталог, в котором вы их храните, добавлен в PATHпеременную окружения.
Файл находится в ~ / workspace / python. Я добавил ~ / workspace / python в свой путь, запустил sudo chmod a + x script.py "и добавил строку shebang (#! / Usr / bin / env python) в начало скрипта Я могу запустить скрипт, набрав * script.py , но просто набрать скрипт не получится
jmau5
2
В unix / linux все является файлом и соответствует его имени. Вы не можете вызвать Script.py как скрипт. Попробуйте переименовать файл из script.py в script, и это должно исправить вашу проблему.
Патрик
Извините, я неправильно понял! Все решено, спасибо!
jmau5
5
.pyРасширение является необходимым для запуска сценария. Вам нужно только сделать исполняемый скрипт (например, запустив chmod a+x script) и добавить строку shebang ( #!/usr/bin/env python).
В качестве опции вы можете создать оболочку для вашего скрипта ( .pyфайла):
Например, у вас есть скрипт, runme.pyчтобы вы могли создать новый файл runmeдля переноса скрипта:
#!/usr/bin/env pythonimport runme
а затем вызвать runme.pyфункциональность, просто вызвав runmeв оболочке.
Это полезно для мультиплатформенных сценариев, потому что на платформе Windows , вы можете назначить .pyфайлы , которые будут вызываться только по имени без расширения и притона в заголовке, но на платформе Linux вы не можете , и , таким образом , оболочка выходит.
.py
Расширение является необходимым для запуска сценария. Вам нужно только сделать исполняемый скрипт (например, запустивchmod a+x script
) и добавить строку shebang (#!/usr/bin/env python
).источник
В качестве опции вы можете создать оболочку для вашего скрипта (
.py
файла):Например, у вас есть скрипт,
runme.py
чтобы вы могли создать новый файлrunme
для переноса скрипта:а затем вызвать
runme.py
функциональность, просто вызвавrunme
в оболочке.Это полезно для мультиплатформенных сценариев, потому что на платформе Windows , вы можете назначить
.py
файлы , которые будут вызываться только по имени без расширения и притона в заголовке, но на платформе Linux вы не можете , и , таким образом , оболочка выходит.источник