Причина, по которой некоторые файлы в /usr/share/pyshared
объявили шебанг, а некоторые не легко объяснить.Возьмите файлы uno.py
и pyinotify.py
.У первого нет шебанга, а у второго есть.
uno.py
- это модуль Python, который будет импортирован и использован в других программах / скриптах.Таким образом, он никогда не будет выполнен напрямую из командной строки. С другой стороны, pyinotify.py
содержит шебанг, и вы можете видеть, что он содержит следующую строку внизу (он может быть превращен в исполняемый файл, если вы запустите на нем chmod u+x
):
if __name__ == '__main__':
command_line()
Вы можете жестко закодировать двоичный файл python в shebang, но, как уже упоминали другие, использование /usr/bin/env
сделает его более переносимым.