Sollen Python-Bibliotheksmodule mit #!/usr/bin/env
python beginnen?
Wenn man sich die ersten Zeilen von *.py
in /usr/share/pyshared
anschaut (wo Python-Bibliotheken in Debian gespeichert sind), zeigt sich, dass es sowohl Dateien gibt, die mit der Hashbang-Zeile beginnen als auch solche, die das nicht tun.
Gibt es einen Grund, diese Zeile einzuschließen oder wegzulassen?
Der Grund, warum einige Dateien in /usr/share/pyshared
den Shebang & amp; einige sind nicht leicht zu erklären. Nimm die Dateien uno.py
und pyinotify.py
. Ersteres hat keinen Shebang und letzteres hat.
uno.py
ist ein Python-Modul, das importiert und in anderen Programmen / Skripten verwendet wird. Daher wird es nie direkt von der Kommandozeile ausgeführt werden. Andererseits enthält pyinotify.py
den Shebang und Sie können sehen, dass er die folgende Zeile am unteren Rand enthält (er kann in eine ausführbare Datei umgewandelt werden, wenn Sie chmod u+x
darauf ausführen):
Sie können die Python-Binärdatei fest im shebang codieren, aber wie andere bereits erwähnt haben, macht die Verwendung von /usr/bin/env
sie portabler.
Diese Linie ist eine Shebang-Linie. Details finden Sie im Wikipedia-Artikel . Im Grunde gibt es den Interpreter an, mit dem die Datei ausgeführt werden kann, wenn sie direkt von der Befehlszeile aus ausgeführt wird.
Sie müssen diese Zeile nicht an den Anfang einer Datei setzen, es sei denn, Sie planen, sie direkt aus der Shell heraus auszuführen. Einige Python-Module (z. B. ftplib) verfügen über einige Funktionen, wenn Sie sie direkt ausführen. Diese haben die #!
-Zeile oben. Die meisten haben keine solche Funktionalität und benötigen daher diese Zeile nicht.
Wenn Sie möchten, dass Ihr Skript eine ausführbare Datei ist, müssen Sie diese Zeile einfügen
Tags und Links python coding-style shebang