Запускайте сценарії Python, не чітко викликаючи `python`


39

Я використовую Debian Linux.

Мені було цікаво, чи є спосіб налаштувати запуск усіх скриптів Python в терміналі, ввівши script.py(замість python script.py).

Відповіді:


58

Вам потрібно зробити дві речі:

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

    #!/usr/bin/python
    

    Це передбачає, що ваш сценарій буде працювати з пітоном за замовчуванням. Якщо вам потрібна конкретна версія, просто вкажіть у шебангу:

    #!/usr/bin/python2.7
    

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

    ./script.py

якщо сценарій знаходиться у вашому поточному каталозі, або:

    script.py

якщо місце сценарію знаходиться у вашому PATH, або:

    path/to/script.py

інакше.


32
Як правило, це краща ідея використовувати #!/usr/bin/env python, якщо у користувача є локальна збірка python (наприклад, в /usr/local/bin), з якою він швидше запустить сценарій.
сапі

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

3
Це не bashте, що читає файл під час виконання ...
unperson325680

@progo Це вірно - зверніть увагу , що якщо ви бачите відповідь , який ви вважаєте , виграють від покращення, йти вперед і редагувати його, поліпшення завжди вітаються
Paul

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

33

Під Linux можна просто використовувати хешбанг (він же шебанг). Додайте рядок

#!/usr/bin/python

якщо ви хочете виконати інтерпретатор python за замовчуванням.

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

використовувати якусь конкретну версію, або

#!/usr/bin/env python

Якщо ви хочете, щоб оточення знайшло для вас пітона.

Вам також буде потрібно зробити сценарій виконуваним

chmod +x script[.py] 

2

Використання:

#!/usr/bin/env python

Це забезпечить, що пітон, який користувач розраховує використовувати, буде тим, що запускає скрипт. Це особливо важливо, якщо користувач використовує virtualenv, щоб мати певну версію python у заданому середовищі.


0

Використовуйте рядок shebang у верхній частині сценарію, як показано нижче:

! / usr / bin / python

Оновіть відповідну версію python, на якій потрібно виконати сценарій. наприклад, для python 3.6 його

! /usr/bin/python3.6

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

! / usr / bin / python

Примітка. Переконайтеся, що сценарій має дозвіл на виконання.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.