Іноді, якщо відповідь не дуже чіткий (я маю на увазі, ви не можете вирішити, чи так, ні), це не має великого значення, і ви можете ігнорувати проблему, поки відповідь не буде зрозумілою.
#!
Єдина мета для запуску скрипта. Джанго завантажує джерела самостійно та використовує їх. Ніколи не потрібно вирішувати, який перекладач слід використовувати. Таким чином, #!
насправді тут немає сенсу.
Як правило, якщо це модуль і не може бути використаний як сценарій, немає необхідності у використанні #!
. З іншого боку, джерело модуля часто містить 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.