Что означает символ "#!" значит в питоне? - PullRequest
10 голосов
/ 09 июня 2011

Что означает эта строка кода?Без этого мой http-сервер python3 не сможет понять и позволить браузеру загрузить пустой файл .py (зависит от ссылки на файл .py)

#! /usr/local/bin/python3

Ответы [ 5 ]

17 голосов
/ 09 июня 2011

Это не вещь Python, это строка hashbang (или shebang), которая указывает, какой интерпретатор должен обработать файл.

Правила различаются, но в простейшей форме файл с именем xyz (содержащий его в качестве первой строки) при запуске из командной строки с xyz запускает его с использованием этого интерпретатора, аналогично :

/usr/local/bin/python3 xyz
8 голосов
/ 09 июня 2011

Это не специфичное для Python понятие, см. http://en.wikipedia.org/wiki/Shebang_(Unix)

7 голосов
/ 09 июня 2011

Это строка shebang / hashbang и вещь Linux / UNIX, совсем не связанная с Python.

При выполнении файла ядро ​​увидит магию #! и использует все, что придет после него, для выполнения скрипта. Фактическая программа, запускаемая ядром, будет program-from-shebang script-file-path [script-args]

Обратите внимание, что обычно нехорошо включать путь .../local/..., а лучше использовать, например. #!/usr/bin/env python3, что приведет к поиску python3 в текущем PATH, который гораздо более переносим.

2 голосов
/ 09 июня 2011

UNIX Шебанг?Смотри http://en.wikipedia.org/wiki/Shebang_(Unix).Пробел между ! и первым /, вероятно, не должен быть там.

2 голосов
/ 09 июня 2011

Это не зависит от Python, но называется Shebang и указывает операционной системе, с какой программой запускать этот сценарий.

...