【发布时间】:2012-07-26 20:50:31
【问题描述】:
我在使用多个子进程调用时遇到问题。
这两个工作正常:
subprocess.call(["gmake", "boot-tilera"], cwd="/home/ecorbett/trn_fp")
p = subprocess.Popen(["gmake", "run-tilera"], stdout=subprocess.PIPE, cwd="/home/ecorbett/trn_fp")
但是,当我尝试在之后直接运行此调用时出现错误:
time.sleep(10)
subprocess.call(["./go2.sh"], cwd="/home/ecorbett/trn_fp/kem_ut")
我在那里添加了睡眠,因为我需要几秒钟才能运行“./go2.sh”程序。不知道是不是这个问题。
有什么建议吗?
【问题讨论】:
-
OSError: [Errno 8] 执行格式错误
-
你能从命令行运行 ./go2.sh 吗?如果是这样,请尝试将 shell=True 作为参数添加到您的 subprocess.call()。
-
它从命令行工作。我会试试的。但是这个“subprocess.call(["gmake", "boot-tilera"], cwd="/home/ecorbett/trn_fp")" 在没有 "shell=True" 参数的情况下可以正常工作
-
成功了!我想知道为什么我需要将它添加到这个命令而不是另一个?
-
go2.sh在"/home/ecorbett/trn_fp/kem_ut"里面吗?cwd参数设置 Python 执行脚本的位置,而不是 Python 查找脚本的位置。 (docs)
标签: python subprocess