Wenn die Antwort nicht eindeutig ist (d.h. Sie können sich nicht entscheiden, ob ja oder nein), ist das manchmal nicht so wichtig, und Sie können das Problem ignorieren, bis die Antwort feststeht. ist klar.
El #!
dient nur zum Starten des Skripts. Django lädt die Quellen selbständig und verwendet sie. Es muss nie entscheiden, welcher Interpreter verwendet werden soll. Auf diese Weise kann das #!
macht hier eigentlich keinen Sinn.
Wenn es sich um ein Modul handelt und es nicht als Skript verwendet werden kann, ist es im Allgemeinen nicht notwendig, die #!
. Andererseits enthält eine Modulquelle oft if __name__ == '__main__': ...
mit zumindest einigen trivialen Tests der Funktionalität. Dann wird die #!
macht wieder Sinn.
Ein guter Grund für die Verwendung von #!
ist, wenn Sie sowohl Python 2 als auch Python 3 Skripte verwenden - sie müssen von verschiedenen Python-Versionen interpretiert werden. Auf diese Weise müssen Sie sich merken, was python
muss verwendet werden, wenn das Skript manuell gestartet wird (ohne die Option #!
innen). Wenn Sie eine Mischung aus solchen Skripten haben, ist es eine gute Idee, die #!
zu erstellen, sie ausführbar zu machen und sie als ausführbare Dateien zu starten (chmod ...).
Bei Verwendung von MS-Windows wird die #!
hatte keinen Sinn - bis vor kurzem. Python 3.3 führt einen Windows Python Launcher (py.exe und pyw.exe) ein, der die #!
Zeile, erkennt die installierten Versionen von Python und verwendet die richtige oder ausdrücklich gewünschte Version von Python. Da die Erweiterung mit einem Programm verknüpft werden kann, können Sie unter Windows ein ähnliches Verhalten erreichen wie mit dem execute-Flag in Unix-basierten Systemen.