OSError: [Errno 8] Exec-Formatfehler in Python
-
Erstellen Sie
OSError: [Errno 8] Exec format error
unter Linux neu -
Fügen Sie
#!/bin/sh
hinzu, umOSError: [Errno 8] Exec format error
in Linux zu beheben -
Verwenden Sie
sh
, umOSError: [Errno 8] Exec format error
unter Linux zu beheben
Mit dem Modul subprocess
in Python können Sie Befehle ausführen, indem Sie neue Prozesse erstellen. Wenn Sie ein Shell-Skript mit seinen Methoden ausführen, erhalten Sie unter Linux manchmal einen OSError: [Errno 8] Exec format error
.
Das Problem Exec format error
wird ausgelöst, wenn das Skript direkt ausgeführt wird und nicht über den richtigen Interpreter. Es tritt auf, wenn am Anfang der Skriptdatei keine Shebang-Zeile steht.
Dieses Tutorial wird Ihnen beibringen, Linuxs OSError: [Errno 8] Exec format error
zu beheben.
Erstellen Sie OSError: [Errno 8] Exec format error
unter Linux neu
Lassen Sie uns zuerst OSError: [Errno 8] Exec format error
unter Linux neu erstellen.
Das Folgende ist ein Bash-Skript myshell.sh
, das Welcome to DelftStack Tutorials
zurückgibt.
echo "Welcome to DelftStact Tutorials"
Unten ist ein Python-Skript, myscript.py
, das das obige Skript mit subprocess.Popen()
ausführt.
import subprocess
shell_file = "/home/delft/myshell.sh"
P = subprocess.Popen(shell_file)
Führen Sie das Python-Skript im Terminal aus.
python3 script.py
Ausgang:
Traceback (most recent call last):
File "myscript.py", line 3, in <module>
P = subprocess.Popen(shell_file)
File "/usr/lib/python3.8/subprocess.py", line 858, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
File "/usr/lib/python3.8/subprocess.py", line 1704, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
OSError: [Errno 8] Exec format error: '/home/delft/myshell.sh'
Wie Sie sehen können, gibt es den Fehler OSError: [Errno 8] Exec format error
zurück.
Fügen Sie #!/bin/sh
hinzu, um OSError: [Errno 8] Exec format error
in Linux zu beheben
Der beste Weg, dieses Problem zu lösen, ist das Hinzufügen von #!/bin/sh
am Anfang der Shell-Skriptdatei myshell.sh
. Es stellt sicher, dass das System den richtigen Interpreter verwendet, um das .sh
-Skript auszuführen.
Bearbeiten Sie die Datei myshell.sh
mit einem beliebigen Editor und fügen Sie die folgenden Zeilen hinzu.
#!/bin/sh
echo "Welcome to DelftStack Tutorials"
Führen Sie nun das Python-Skript aus, um das Ergebnis anzuzeigen.
python3 myscript.py
Ausgang:
Welcome to DelftStack Tutorials
Verwenden Sie sh
, um OSError: [Errno 8] Exec format error
unter Linux zu beheben
Sie können auch sh
im Python-Skript in dem Befehl angeben, der die Shell-Skriptdatei ausführt.
Hier ist ein Beispiel dafür.
import subprocess
shell_file = "/home/delft/myshell.sh"
P = subprocess.Popen(["sh", shell_file])
Führen Sie als Nächstes die Python-Skriptdatei aus.
python3 myscript.py
Ausgang:
Welcome to DelftStack Tutorials
Jetzt wissen Sie, wie Sie OSError: [Errno 8] Exec format error
lösen und Shell-Skripte mit Python unter Linux ausführen. Wir hoffen, dass Sie dieses Tutorial hilfreich finden.
Verwandter Artikel - Python Error
- Adresse wird bereits verwendet Fehler in Python
- AttributeError: __Exit__ in Python
- AttributeError: 'Dict'-Objekt hat kein Attribut 'Append' in Python
- AttributeError: 'NoneType'-Objekt hat kein Attribut 'Text' in Python
- AttributeError: Int-Objekt hat kein Attribut
- AttributeError: Modul Urllib hat keine Attributanforderung