Иногда, если ответ не очень ясен (я имею в виду, что вы не можете решить, да или нет), тогда он не имеет большого значения, и вы можете игнорировать проблему, пока ответ не будет ясным.
#!
Единственная цель для запуска скрипта. Django загружает источники самостоятельно и использует их. Никогда не нужно решать, какой переводчик следует использовать. Таким образом, на #!
самом деле здесь нет никакого смысла.
Как правило, если это модуль и его нельзя использовать в качестве сценария, использовать его не нужно #!
. С другой стороны, источник модуля часто содержит, if __name__ == '__main__': ...
по крайней мере, некоторые тривиальные тесты функциональности. Тогда это #!
снова имеет смысл.
Одна хорошая причина для использования #!
- когда вы используете оба сценария Python 2 и Python 3 - они должны интерпретироваться различными версиями Python. Таким образом, вы должны помнить, что python
нужно использовать при запуске скрипта вручную (без #!
внутренней части). Если у вас есть смесь таких сценариев, рекомендуется использовать#!
внутри, сделать их исполняемыми и запустить их как исполняемые файлы (chmod ...).
При использовании MS-Windows это #!
не имело смысла - до недавнего времени. Python 3.3 представляет Windows Python Launcher (py.exe и pyw.exe), который читает #!
строку, обнаруживает установленные версии Python и использует правильную или явно требуемую версию Python. Поскольку расширение может быть связано с программой, вы можете получить такое же поведение в Windows, как и с флагом выполнения в системах на основе Unix.