OSError: [Errno 8] Error de formato Exec en Python
-
Vuelva a crear
OSError: [Errno 8] Exec format error
en Linux -
Agregue
#!/bin/sh
para arreglarOSError: [Errno 8] Exec format error
en Linux -
Use
sh
para arreglarOSError: [Errno 8] Exec format error
en Linux
El módulo subproceso
en Python le permite ejecutar comandos creando nuevos procesos. Al ejecutar un script de shell utilizando sus métodos, a veces puede obtener un OSError: [Errno 8] Exec format error
en Linux.
El problema Error de formato Exec
surge cuando el script se ejecuta directamente y no a través del intérprete correcto. Ocurre si no hay una línea shebang al comienzo del archivo de script.
Este tutorial le enseñará a corregir el OSError: [Errno 8] Exec format error
de Linux.
Vuelva a crear OSError: [Errno 8] Exec format error
en Linux
Primero, vamos a recrear OSError: [Errno 8] Exec format error
en Linux.
El siguiente es un script de Bash myshell.sh
que devuelve Bienvenido a los tutoriales de DelftStack
.
echo "Welcome to DelftStact Tutorials"
A continuación se muestra un script de Python, myscript.py
, que ejecuta el script anterior usando subprocess.Popen()
.
import subprocess
shell_file = "/home/delft/myshell.sh"
P = subprocess.Popen(shell_file)
Ejecute el script de Python en la terminal.
python3 script.py
Producción :
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'
Como puedes ver, devuelve el error OSError: [Errno 8] Exec format error
.
Agregue #!/bin/sh
para arreglar OSError: [Errno 8] Exec format error
en Linux
La mejor manera de resolver este problema es agregando #!/bin/sh
en la parte superior del archivo de script de shell myshell.sh
. Garantiza que el sistema utilice el intérprete adecuado para ejecutar el script .sh
.
Edite el archivo myshell.sh
con cualquier editor y agregue las siguientes líneas.
#!/bin/sh
echo "Welcome to DelftStack Tutorials"
Ahora ejecute el script de Python para ver el resultado.
python3 myscript.py
Producción :
Welcome to DelftStack Tutorials
Use sh
para arreglar OSError: [Errno 8] Exec format error
en Linux
También puede especificar sh
en el script de Python en el comando que ejecuta el archivo de script de shell.
Aquí hay un ejemplo de ello.
import subprocess
shell_file = "/home/delft/myshell.sh"
P = subprocess.Popen(["sh", shell_file])
A continuación, ejecute el archivo de script de Python.
python3 myscript.py
Producción :
Welcome to DelftStack Tutorials
Ahora ya sabe cómo resolver OSError: [Errno 8] Exec format error
y ejecutar scripts de shell usando Python en Linux. Esperamos que este tutorial le resulte útil.
Artículo relacionado - Python Error
- Administrar fallas de segmentación en Python
- Archivo <Stdin>, Línea 1, en <Módulo> Error en Python
- Arreglar AttributeError: el objeto 'generador' no tiene atributo 'siguiente' en Python
- Arreglar el comando cl.exe falló: no existe tal archivo o directorio en Windows
- Arreglar NameError: la variable no está definida en Python
- Arreglar Socket.Gaierror: [Errno 8] Nodename ni Servname proporcionado, o desconocido en Python