OSError: [Errno 8] Error de formato Exec en Python
-
Vuelva a crear
OSError: [Errno 8] Exec format erroren Linux -
Agregue
#!/bin/shpara arreglarOSError: [Errno 8] Exec format erroren Linux -
Use
shpara arreglarOSError: [Errno 8] Exec format erroren 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
