Python-Source-Header-Kommentar
Frage
Was ist die Zeile
#!/usr/bin/env python
in der ersten Zeile eines Python-Skript verwendet?
Lösung
In UNIX und Linux dies erzählt die binäre als Dolmetscher zu verwenden (siehe auch Wiki-Seite ).
Zum Beispiel wird Shell-Skript von /bin/sh
interpretiert.
#!/bin/sh
Jetzt mit Python ist es ein bisschen schwierig, weil man nicht davon ausgehen kann, wo die binäre installiert ist, noch welche Sie verwenden möchten. So ist der /usr/bin/env
Trick. Es ist die Verwendung je nachdem, was Python binär zuerst in der $PATH
ist. Sie können diese Ausführung which python
überprüfen
Mit der Interpreter Zeile können Sie das Skript ausführen, indem CHMOD es ausführbar. Und läuft es einfach. So mit Skript beginnend mit
#!/usr/bin/env python
Diese beiden Methoden sind äquivalent:
$ python script.py
und (unter der Annahme, dass früher Sie chmod +x script.py
getan haben)
$ ./script.py
Dies ist nützlich für die Erstellung von systemweiten Skripten.
cp yourCmd.py /usr/local/bin/yourCmd
chmod a+rx /usr/local/bin/yourCmd
Und dann rufen Sie es von überall nur mit
yourCmd
Andere Tipps
Dies wird als ein shebang Zeile:
In der Computersprache ein shebang (auch als Hash-Bang, hashpling oder Pfund Knall) bezieht sich auf die Zeichen "#!" wenn sie die ersten beiden Zeichen in einer Textdatei. Unix-ähnliche Betriebssysteme, um die Anwesenheit dieser beiden Zeichen als Hinweis, dass die Datei ein Skript ist, und versuchen, das Skript mit dem Interpreter durch den Rest der ersten Zeile in der Datei angegeben auszuführen. Zum Beispiel Shell-Skripten für den Bourne-Shell mit der ersten Zeile beginnen:
Unter UNIX und ähnlichen Betriebssystemen, diese Zeile zeigt an, welcher Interpreter verwendet werden soll, wenn die Datei ausgeführt wird.
Wie Andri sagte. In Windows, um die ausführbare Datei eine Datei mit laufen nach dem Abwurf aus der Befehlszeile setzt auf eine Assoziation:
16:12:40.68 C:\>assoc .py
.py=Python.File
16:13:53.45 C:\>assoc Python.File
Python.File=Python File
16:14:01.70 C:\>ftype Python.File
Python.File="C:\Python30\python.exe" "%1" %*
In Unix, der Shell-Interpreter macht die Inferenz durch Öffnen der Datei und sehen, ob es ein Befehl in der Datei mit dem Namen ist.
'/ usr / bin / env python' sucht $ PATH für Python und führt es aus.
In der Regel env wird verwendet, um einige Umgebungsvariablen zu setzen für ein Programm
Was diese Zeile tut, ist Ihr Computer sagen, was mit dieser Datei zu tun, wenn Sie einfach versuchen, die Datei ausführen, ohne einen Dolmetscher Angabe .. Detail
Nur ein Hinweis, diese Linie ist nichts mehr als ein Kommentar an den Interpreter in Windows .