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

40

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

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

user2018084
источник

Ответы:

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 / бен / питон

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

Сурадж Бора
источник