Frage

Was ist die Zeile

#!/usr/bin/env python

in der ersten Zeile eines Python-Skript verwendet?

War es hilfreich?

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 .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top