GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Ubuntu Python Shebang-Zeile funktioniert nicht

Wenn Sie versuchen, den Befehl als

auszuführen
$ test.py

Der Fehler hat möglicherweise nichts mit dem Shebang zu tun. Vielmehr befindet sich das Verzeichnis, in dem sich test.py befindet, nicht in Ihrem PATH . Versuchen Sie es

$ ./test.py

um PATH zu umgehen nachschlagen.

(Damit wird zusätzlich sichergestellt, dass das Skript selbst ausführbar ist.)


Auf der Python-Dokumentationsseite heißt es:

Um Python-Skripte einfach unter Unix verwenden zu können, müssen Sie sie ausführbar machen, z. mit

$ chmod +x script und setzen Sie eine entsprechende Shebang-Zeile an den Anfang des Skripts. Eine gute Wahl ist normalerweise

#!/usr/bin/env python, das im gesamten PATH nach dem Python-Interpreter sucht. Einige Unices verfügen jedoch möglicherweise nicht über den Befehl env, sodass Sie möglicherweise /usr/bin/python als Interpreter-Pfad fest codieren müssen.

Ich weiß nicht, ob dies auf Sie zutrifft oder nicht.


Abgesehen davon, dass das Skript mit einem vorangestellten Punkt ausgeführt oder ausführbar gemacht wird, kann es noch ein weiteres Problem geben:

Wenn Sie versuchen, ein mit einem Windows-Editor geschriebenes Skript zu verwenden, kann es Windows-Zeilenenden enthalten. Wenn Sie diese entfernen, kann der Shebang wieder funktionieren.

Informationen zum Entfernen solcher Zeilenenden finden Sie beispielsweise unter So konvertieren Sie Windows-Zeilenende in Unix-Zeilenende (CR/LF in LF).

Siehe auch meine allgemeinen Bemerkungen zu fehlgeschlagenen Shebang-Bewertungen in meiner anderen Antwort.


Linux
  1. Bluetooth funktioniert nicht unter Ubuntu 13.10?

  2. Ändern Sie das Arbeitsverzeichnis in der Shell mit einem Python-Skript

  3. Shell-Skript funktioniert gut ohne Shebang-Zeile? Wieso den?

  4. Nohup für Python-Skript funktioniert nicht, wenn es im Hintergrund mit &ausgeführt wird

  5. Internet funktioniert nicht in Anbox unter Ubuntu 18.04

Automatische Anmeldung funktioniert nicht in Ubuntu 17.10

Netzwerkfreigabe Ubuntu 15.04 funktioniert nicht?

Traceroute-Befehl funktioniert nicht unter Ubuntu

Wie führe ich ein Python-Skript auf dem Terminal (Ubuntu) aus?

Conda-Befehl funktioniert in der Eingabeaufforderung, aber nicht im Bash-Skript

Shebang oder nicht Shebang