【发布时间】:2026-01-27 03:25:01
【问题描述】:
我在搅拌机中有一个 python 脚本
subprocess.call(os.path.abspath('D:/Test/run-my-script.sh'),shell=True)
随后是许多其他代码,这些代码依赖于这个 shell 脚本来完成。发生了什么是它不等待它完成,我不知道为什么?我什至尝试使用Popen 而不是call,如图所示:
p1 = subprocess.Popen(os.path.abspath('D:/Test/run-my-script.sh'),shell=True)
p1.wait()
我尝试使用 commuincate 但它仍然不起作用:
p1 = subprocess.Popen(os.path.abspath('D:/Test/run-my-script.sh'),shell=True).communicate()
此 shell 脚本在 MacOS 上运行良好(更改路径后)并在使用 subprocess.call(['sh', '/userA/Test/run-my-script.sh']) 时等待
但在 Windows 上会发生这种情况,我在 Blender 中运行下面的 python 脚本,然后一旦它到达子进程行 Git bash 打开并运行 shell 脚本,而 Blender 不等待它完成它只是打印Hello 在其控制台中,无需等待 Git Bash 完成。有什么帮助吗?
import bpy
import subprocess
subprocess.call(os.path.abspath('D:/Test/run-my-script.sh'),shell=True)
print('Hello')
【问题讨论】:
-
当您从命令行运行
D:/Test/run-my-script.sh时,Windows 上会发生什么?它会立即返回吗? -
你能发布 bash 脚本吗?
标签: python shell subprocess blender git-bash