迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

Python 运行脚本错误 OSError: [Errno 8] Exec Format Error

作者:迹忆客 最近更新:2023/05/15 浏览次数:

Python 中的 subprocess 模块允许您通过创建新进程来运行命令。 使用其方法运行 shell 脚本时,有时您可能会在 Linux 中遇到 OSError: [Errno 8] Exec format error。

当脚本直接运行而不是通过正确的解释器时,会引发 Exec 格式错误问题。 如果脚本文件的开头没有 shebang 行,则会发生这种情况。

本篇文章将介绍如何修复 Linux 的 OSError: [Errno 8] Exec format error


重现Linux中OSError: [Errno 8] Exec format error 错误

首先,让我们在 Linux 中重现 OSError: [Errno 8] Exec format error

以下是返回 Welcome to Jiyik Tutorials 的 Bash 脚本 myshell.sh。

echo "Welcome to Jiyik Tutorials"

下面是一个 Python 脚本 myscript.py,它使用 subprocess.Popen() 运行上述脚本。

import subprocess
shell_file = '/home/delft/myshell.sh'
P = subprocess.Popen(shell_file)

在终端中运行 Python 脚本。

python3 script.py

输出:

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/jiyik/myshell.sh'

如您所见,它返回错误 OSError: [Errno 8] Exec format error


添加 #!/bin/sh 以修复Linux中 OSError: [Errno 8] Exec format error

解决此问题的最佳方法是在 shell 脚本文件 myshell.sh 的顶部添加 #!/bin/sh。 它确保系统使用正确的解释器来运行 .sh 脚本。

使用任何编辑器编辑 myshell.sh 文件并添加以下行。

#!/bin/sh
echo "Welcome to Jiyik Tutorials"

现在运行 Python 脚本以查看结果。

python3 myscript.py

输出:

Welcome to Jiyik Tutorials

使用 sh 修复Linux 中的 OSError: [Errno 8] Exec format error

您也可以在运行 shell 脚本文件的python 脚本命令中指定 sh

这是一个例子。

import subprocess
shell_file = '/home/jiyik/myshell.sh'
P = subprocess.Popen(['sh', shell_file])

接下来,运行 Python 脚本文件。

python3 myscript.py

输出:

Welcome to Jiyik Tutorials

现在你知道如何在 Linux 中使用 Python 解决 OSError: [Errno 8] Exec format error 和运行 shell 脚本了。 我们希望大家觉得本篇文章对您有所帮助。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Python 中 AttributeError: Int Object Has No Attribute 错误

发布时间:2023/05/15 浏览次数:170 分类:Python

修复 Python 错误 AttributeError: 'int' object has no attribute。本篇文章重点介绍并提供了一种解决方案,以应对我们在 Python 中使用 int 数据类型时可能发生的特定错误。

Python 中 NameError: The OS Module Is Not Defined 错误

发布时间:2023/05/15 浏览次数:111 分类:Python

os 模块提供了使我们能够与操作系统交互的函数和依赖项。如果在没有先导入os模块的情况下使用os模块函数,会导致错误,即NameError: the OS module is not defined in Python。

Windows 10 无法识别 Python

发布时间:2023/05/15 浏览次数:119 分类:Python

我们将介绍如何解决 Windows 10 上“python”无法识别的错误。修复“python”在 Windows 10 中无法识别的错误

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便