2024-03-28 10:06:49 发布
网友
我试图调用Python模块,但出现以下错误“测试.sh未找到“
但是这个文件是在目录中找到的。在
process = subprocess.Popen("test.sh",shell=True)
脚本和sh文件位于同一目录中。在
默认情况下,当前目录不在路径中,因此没有找到"test.sh",最小的更改是使用"./tests.sh"。在
"test.sh"
"./tests.sh"
要运行shell脚本,请确保您具有有效的shebang,例如,#!/bin/sh,并且该文件具有可执行权限(chmod u+x test.sh)。在
#!/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。在
shell=True
realpath
abspath
默认情况下,当前目录不在路径中,因此没有找到
"test.sh"
,最小的更改是使用"./tests.sh"
。在要运行shell脚本,请确保您具有有效的shebang,例如,
#!/bin/sh
,并且该文件具有可执行权限(chmod u+x test.sh
)。在如果从其他目录运行Python脚本,则还需要提供完整路径:
注意:这里没有
shell=True
启动额外的不必要的shell进程。realpath
解析符号链接,如果需要路径相关脚本的符号链接而不是脚本文件本身,则可以使用abspath
。在相关问题 更多 >
编程相关推荐