Python 运行脚本错误 OSError: [Errno 8] Exec Format Error
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 脚本了。 我们希望大家觉得本篇文章对您有所帮助。
相关文章
Python 中 AttributeError: Int Object Has No Attribute 错误
发布时间:2023/05/15 浏览次数:170 分类:Python
-
修复 Python 错误 AttributeError: 'int' object has no attribute。本篇文章重点介绍并提供了一种解决方案,以应对我们在 Python 中使用 int 数据类型时可能发生的特定错误。
Python 修复共享内存问题和锁定共享资源问题
发布时间:2023/05/15 浏览次数:136 分类:Python
-
本篇文章解释了多处理共享内存的不同方面,并演示了如何使用共享内存解决问题。 我们还将学习如何使用锁来锁定 Python 中的共享资源。
Python 中 ImportError: No Module Named Setuptools 错误
发布时间:2023/05/15 浏览次数:140 分类:Python
-
本篇文章讨论了 ImportError saying no module named setuptools 并提供了在 Python 中消除此错误的解决方案。Python 设置工具库
Python 中解决 TypeError: Can't Multiply Sequence by Non-Int of Type STR 错误
发布时间:2023/05/15 浏览次数:189 分类:Python
-
本篇文章着重于并旨在为 TypeError: can't multiply sequence by non-int of type 'str' 错误提供解决方案。Python 提供了多种数据类型,str 数据类型就是其中之一。 Python 中的字符串表示一系列 Unicode 字符,用
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 中无法识别的错误
Python 中 Handling Socket.Error: [Errno 104] Connection Reset by Peer 错误
发布时间:2023/05/15 浏览次数:183 分类:Python
-
在我们创建连接到服务器以下载信息(如外汇或比特币汇率)的应用程序后,我们往往会遇到各种连接问题; 其中一个问题是 [Errno 104] Connection reset by peer 错误。
Python 中 TypeError: Can't Convert 'List' Object to STR 错误
发布时间:2023/05/15 浏览次数:125 分类:Python
-
我们将使用示例将列表对象转换为 Python 中的字符串。 我们还将通过示例介绍如何在 Python 中将字符串与列表对象连接起来。
Python 中 TypeError: 'DataFrame' Object Is Not Callable 错误
发布时间:2023/05/15 浏览次数:166 分类:Python
-
我们将介绍如何在 Python 中基于查询从 DataFrame 中调用数据。 我们还将通过示例介绍如何解决Python中的错误 TypeError: ‘DataFrame’ object is not callable 。