Uruchamiaj skrypty Pythona bez jawnego wywoływania `python`

39

Używam Debian Linux.

Zastanawiałem się, czy istnieje sposób skonfigurowania do uruchamiania wszystkich skryptów Python w terminalu, wpisując script.py(zamiast python script.py).

user2018084
źródło

Odpowiedzi:

58

Musisz zrobić dwie rzeczy:

  • Upewnij się, że plik jest wykonywalny: chmod +x script.py
  • Użyj shebang, aby poinformować jądro, jakiego interpretera użyć. Górna linia skryptu powinna brzmieć:

    #!/usr/bin/python
    

    Zakłada się, że skrypt będzie działał z domyślnym pythonem. Jeśli potrzebujesz konkretnej wersji, po prostu podaj w shebang:

    #!/usr/bin/python2.7
    

Teraz możesz wpisać:

    ./script.py

jeśli skrypt znajduje się w bieżącym katalogu lub:

    script.py

jeśli lokalizacja skryptu znajduje się w Twojej ŚCIEŻCE, lub:

    path/to/script.py

Inaczej.

Paweł
źródło
32
Zasadniczo lepiej jest użyć tego #!/usr/bin/env pythonna wypadek, gdyby użytkownik miał lokalną wersję Pythona (np. In /usr/local/bin), z którą wolałby uruchomić skrypt.
sapi
3
@sapi Nie według Debiana tak nie jest, przynajmniej w ich polityce deweloperskiej. Jeśli piszesz własne skrypty, możesz oczywiście zaakceptować ryzyko, po prostu lepiej jest to wyrazić. Jeśli chcesz lokalny, wybierz go w shebang.
Paul
3
To nie tak, bashże czyta plik podczas wykonywania ...
unperson325680,
@progo To prawda - zwróć uwagę, że jeśli zobaczysz odpowiedź, która Twoim zdaniem przydałaby się poprawa, nie wahaj się i edytuj ją, ulepszenia są zawsze mile widziane
Paul
I musisz to zrobić ./script.py, niescript.py
Paul Draper,
33

W Linuksie możesz po prostu użyć hashbanga (aka shebang). Dodaj linię

#!/usr/bin/python

jeśli chcesz uruchomić domyślny interpreter Pythona.

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

użyć określonej wersji lub

#!/usr/bin/env python

Jeśli chcesz, aby środowisko znalazło dla Ciebie Pythona.

Konieczne będzie również wykonanie skryptu

chmod +x script[.py] 
Gaurav Joseph
źródło
2

Posługiwać się:

#!/usr/bin/env python

Zapewni to, że python, którego oczekuje użytkownik, będzie tym, który uruchamia skrypt. Jest to szczególnie ważne, jeśli użytkownik używa virtualenv, aby mieć określoną wersję Pythona w danym środowisku.

Cory Klein
źródło
0

Użyj linii shebang na górze skryptu, jak poniżej:

! / usr / bin / python

Zaktualizuj odpowiednią wersję Pythona, na której chcesz uruchomić skrypt. np. dla Pythona 3.6

! /usr/bin/python3.6

dla domyślnego tłumacza

! / usr / bin / python

Uwaga: Upewnij się, że skrypt ma uprawnienia do wykonywania.

Suraj Bora
źródło