Комментарий к заголовку исходного кода Python

StackOverflow https://stackoverflow.com/questions/707127

  •  22-08-2019
  •  | 
  •  

Вопрос

Что это за линия

#!/usr/bin/env python

в первой строке скрипта python, используемого для?

Это было полезно?

Решение

В UNIX и Linux это указывает, какой двоичный файл использовать в качестве интерпретатора (см. Также Вики - страница).Например, сценарий оболочки интерпретируется /bin/sh.

#!/bin/sh

Теперь с python это немного сложнее, потому что вы не можете предположить, где установлен двоичный файл и который вы хотите использовать.Таким образом, /usr/bin/env трюк.Он использует тот двоичный файл python, который является первым в $PATH.Вы можете проверить, что выполнение which python

С помощью строки интерпретатора вы можете запустить скрипт, изменив его на исполняемый.И просто запускаю его.Таким образом, со сценарием, начинающимся с

#!/usr/bin/env python

эти два метода эквивалентны:

$ python script.py

и (предполагая, что ранее вы сделали chmod +x script.py)

$ ./script.py

Это полезно для создания общесистемных сценариев.

cp yourCmd.py /usr/local/bin/yourCmd
chmod a+rx /usr/local/bin/yourCmd

И затем вы вызываете его из любого места просто с

yourCmd

Другие советы

Это называется дело линия:

В вычислительной технике shebang (также называемый hashbang, hashpling или pound bang) относится к символам "#!", когда они являются первыми двумя символами в текстовом файле.Unix-подобные операционные системы воспринимают наличие этих двух символов как указание на то, что файл является скриптом, и пытаются выполнить этот скрипт, используя интерпретатор, указанный в остальной части первой строки файла.Например, сценарии оболочки для оболочки Bourne начинаются с первой строки:

В UNIX и аналогичных операционных системах эта строка указывает, какой интерпретатор следует использовать, если файл выполняется.

Как сказал Андри.В Windows исполняемый файл для запуска файла при запуске из командной строки зависит от ассоциации:

16:12:40.68 C:\>assoc .py
.py=Python.File

16:13:53.45 C:\>assoc Python.File
Python.File=Python File

16:14:01.70 C:\>ftype Python.File
Python.File="C:\Python30\python.exe" "%1" %*

В Unix интерпретатор оболочки делает вывод, открывая файл и проверяя, есть ли в файле команда с именем.

'/usr/bin/env python' ищет python в $PATH и запускает его.

Обычно env используется для установки некоторых переменных среды для программы

Что делает эта строка, так это сообщает вашему компьютеру, что делать с этим файлом, если вы просто попытаетесь запустить файл без указания переводчика.. более подробно

Просто примечание, эта строка - не что иное, как комментарий к интерпретатору в Windows.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top