我有2个脚本需要同时运行。一个脚本收集数据,另一个脚本实时绘制数据。
在PC上,我可以简单地打开2个IDLE shell,它们会同时运行,但在Mac上,这是不可能的。
我按照这篇文章(Run multiple python scripts concurrently)中的建议编写了以下bash文件:
python script1.py &
python script2.py &
但这只能一次运行一个脚本。无论如何在mac上我可以同时运行两个脚本吗?
答案 0 :(得分:1)
您可以使用subprocess.Popen()
在python中完成所有操作import subprocess
import sys
s1 = subprocess.Popen([sys.executable, 'script1.py'])
s2 = subprocess.Popen([sys.executable, 'script2.py'])
s1.wait()
s2.wait()
答案 1 :(得分:1)
出于我的目的,我能够找到一种稍微繁琐的解决方法。我现在有2个独立的bash脚本,每个脚本包含我最初发布的上述脚本中的一行。运行两个bash脚本将同时在不同的shell中运行我的脚本。
作为旁注,是否有人知道如何做类似的事情,我使用单个bash脚本来调用两个新的bash脚本?
答案 2 :(得分:0)
事实并非如此,OS X(Mac)按预期工作。
#! /usr/bin/env python
import time
time.sleep(1)
print "script1.py"
#! /usr/bin/env python
print "script2.py"
设置可执行权限并在shell中运行
./script1.py &
./script2.py &
,输出将是
script2.py
script1.py
证明两者同时运行(首先显示第二个脚本的输出)