Запускать скрипты Python без явного вызова `python`


40

Я использую Debian Linux.

Мне было интересно, есть ли способ настроить для запуска всех скриптов Python в терминале, набрав script.py(вместо python script.py).

Ответы:


58

Есть две вещи, которые вам нужно сделать:

  • Убедитесь, что файл исполняемый: chmod +x script.py
  • Используйте шебанг, чтобы сообщить ядру, какой интерпретатор использовать. Верхняя строка скрипта должна выглядеть так:

    #!/usr/bin/python
    

    Это предполагает, что ваш скрипт будет работать с питоном по умолчанию. Если вам нужна конкретная версия, просто укажите в shebang:

    #!/usr/bin/python2.7
    

Теперь вы можете ввести:

    ./script.py

если скрипт находится в вашем текущем каталоге, или:

    script.py

если местоположение сценария находится в вашем PATH, или:

    path/to/script.py

иначе.


32
Как правило, это лучшая идея #!/usr/bin/env python, если у пользователя есть локальная сборка python (например, in /usr/local/bin), с которой он предпочел бы запустить скрипт.
Сапи

3
@sapi Не согласно Debian, по крайней мере, в их политике разработки. Если вы пишете свои собственные сценарии, вы можете, конечно, принять риск, просто лучше быть явным. Если вы хотите местный, выберите его в шебанге.
Пол

3
Это не bashто, что читает файл при выполнении ...
unperson325680

@progo Это правда - обратите внимание, что если вы видите ответ, который, по вашему мнению, выиграет от улучшения, продолжайте и редактируйте его, улучшения всегда приветствуются
Пол

И вам придется делать ./script.py, а неscript.py
Пол Дрейпер

33

Под Linux вы можете просто использовать hashbang (он же Шебанг). Добавьте строку

#!/usr/bin/python

если вы хотите выполнить интерпретатор Python по умолчанию.

#!/path/to/python[x.x]

использовать какую-то конкретную версию, или

#!/usr/bin/env python

Если вы хотите, чтобы среда нашла для вас python.

Вам также необходимо сделать исполняемый скрипт

chmod +x script[.py] 

2

Использование:

#!/usr/bin/env python

Это гарантирует, что Python, который пользователь ожидает использовать, будет тем, который запускает скрипт. Это особенно важно, если пользователь использует virtualenv, чтобы иметь конкретную версию python в данной среде.


0

Используйте строку shebang в верхней части вашего скрипта, как показано ниже:

! / USR / бен / питон

Обновите соответствующую версию Python, на которой вы хотите выполнить скрипт. Например, для Python 3.6 его

! /usr/bin/python3.6

для переводчика по умолчанию

! / USR / бен / питон

Примечание. Убедитесь, что у скрипта есть разрешение на выполнение.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.