Manchmal, wenn die Antwort ist nicht ganz klar (ich meine Sie nicht entscheiden können , ob ja oder nein), dann spielt es keine Rolle , zu viel, und man kann das Problem ignorieren , bis die Antwort ist klar.
Der #!
einzige Zweck ist das Starten des Skripts. Django lädt die Quellen selbst und verwendet sie. Es muss nie entschieden werden, welcher Interpreter verwendet werden soll. Auf diese Weise #!
macht das hier eigentlich keinen Sinn.
Wenn es sich um ein Modul handelt, das nicht als Skript verwendet werden kann, muss das im Allgemeinen nicht verwendet werden #!
. Andererseits enthält eine Modulquelle häufig if __name__ == '__main__': ...
zumindest einige triviale Tests der Funktionalität. Dann #!
macht das wieder Sinn.
Ein guter Grund für die Verwendung #!
ist, wenn Sie sowohl Python 2- als auch Python 3-Skripte verwenden - diese müssen von verschiedenen Versionen von Python interpretiert werden. Auf diese Weise müssen Sie sich merken, was python
beim manuellen Starten des Skripts (ohne das #!
Innere) verwendet werden muss. Wenn Sie eine Mischung solcher Skripte haben, ist es eine gute Idee, das #!
Innere zu verwenden, sie ausführbar zu machen und sie als ausführbare Dateien zu starten (chmod ...).
Bei der Verwendung von MS-Windows hatte das #!
keinen Sinn - bis vor kurzem. Python 3.3 führt einen Windows Python Launcher (py.exe und pyw.exe) ein, der die #!
Zeile liest , die installierten Versionen von Python erkennt und die richtige oder explizit gewünschte Version von Python verwendet. Da die Erweiterung einem Programm zugeordnet werden kann, können Sie unter Windows ein ähnliches Verhalten wie mit dem Ausführungsflag in Unix-basierten Systemen erzielen.