web-dev-qa-db-ger.com

führen Sie das Python-Skript direkt über die Befehlszeile aus

#!/usr/bin/env python

Das habe ich an die Spitze eines Skripts gesetzt. Ich habe gesehen, dass das Skript von der Befehlszeile aus lauffähig gemacht werden kann, ohne dass python programname.py benötigt wird. Wenn ich kein Missverständnis habe, sollte ich programname.py verwenden können, solange die obige Zeile oben im Skript steht. Ist das richtig? 

Es funktioniert nicht für mich. Ich bekomme nur eine Fehlermeldung, die besagt, dass ich am Anfang des Aufrufs python verwenden müsste.

9
confused

Universelle Ausführung von Python-Skripten

Sie können so ziemlich universell ohne den Shebang (#!) mit laufen

python myscript.py

Oder fast gleichwertig (es platziert das aktuelle Verzeichnis in Ihrem Pfad und führt das Modul mit dem Namen myscript aus) (vorzugsweise dies tun!) :

python -m myscript

von der Befehlszeile aus, sofern Sie Python installiert haben und sich in Ihrer Pfadumgebungsvariablen befinden (d. h. mit python ausgeführt werden, was bei einer Installation normalerweise der Fall wäre).

Shebangs (#!) sind eine Unix-Sache.

Der Shebang, wie Sie ihn verwenden, ist normalerweise für die Ausführung auf einer Unix-Plattform (normalerweise Apple oder Linux) vorgesehen. Windows erfordert normalerweise, dass Cygwin den Shebang verwendet.

In der Regel können Sie standardmäßig festlegen, welcher Python in Ihrem Systempfad verfügbar ist:

#!/usr/bin/env python

Wenn Sie sich auf einem Unix befinden, können Sie andere Standorte für Ihr Python-Setup ausprobieren, z.

#!/usr/bin/python

Durchwursteln

Sie können den Python, den Sie gerade verwenden, mit dem Befehl unix which anzeigen. Wenn Sie also sehen möchten, woher Ihr Python kommt, verwenden Sie diesen Befehl:

which python

oder unter Windows (cygwin kann wahrscheinlich den Shebang ausführen):

where python

Unter Linux/Unix benötigen Sie auf diese Weise auch Ausführungsberechtigungen, um die Datei auszuführen. Verwenden Sie chmod 

chmod +x myscript.py

(chmod kann auch für Cygwin in Windows gelten)

Wenn Sie nicht als root ausgeführt werden, benötigen Sie möglicherweise Sudo 

Sudo chmod +x myscript.py

Und dann versuchen Sie (innerhalb desselben Verzeichnisses) mit auszuführen

./myscript.py 
23
Aaron Hall

die Datei ausführbar machen

Sudo chmod +x /path/to/file.py

und dann aus demselben Verzeichnis wie file.py:

./file.py
6
jpwagner

Sie können auch webbrowser module folgendermaßen verwenden:

python -m webbrowser -t "http://www.python.org"
1
Andrew K