找不到文件或目录Python子进程

2024-03-28 10:06:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图调用Python模块,但出现以下错误“测试.sh未找到“

但是这个文件是在目录中找到的。在

process = subprocess.Popen("test.sh",shell=True)

脚本和sh文件位于同一目录中。在


Tags: 模块文件test目录脚本truesh错误
1条回答
网友
1楼 · 发布于 2024-03-28 10:06:49

默认情况下,当前目录不在路径中,因此没有找到"test.sh",最小的更改是使用"./tests.sh"。在

要运行shell脚本,请确保您具有有效的shebang,例如,#!/bin/sh,并且该文件具有可执行权限(chmod u+x test.sh)。在

如果从其他目录运行Python脚本,则还需要提供完整路径:

#!/usr/bin/env python
import os
import sys
from subprocess import check_call

script_dir = os.path.realpath(os.path.dirname(sys.argv[0]))
check_call(os.path.join(script_dir, "test.sh"))

注意:这里没有shell=True启动额外的不必要的shell进程。realpath解析符号链接,如果需要路径相关脚本的符号链接而不是脚本文件本身,则可以使用abspath。在

相关问题 更多 >