用bash同时运行python scrips

时间:2017-06-27 18:36:56

标签: python bash shell

我有2个脚本需要同时运行。一个脚本收集数据,另一个脚本实时绘制数据。

在PC上,我可以简单地打开2个IDLE shell,它们会同时运行,但在Mac上,这是不可能的。

我按照这篇文章(Run multiple python scripts concurrently)中的建议编写了以下bash文件:

python script1.py &
python script2.py &

但这只能一次运行一个脚本。无论如何在mac上我可以同时运行两个脚本吗?

3 个答案:

答案 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)按预期工作。

script1.py

#! /usr/bin/env python
import time
time.sleep(1)
print "script1.py"

script2.py

#! /usr/bin/env python
print "script2.py"

运行

设置可执行权限并在shell中运行

./script1.py &
./script2.py &

,输出将是

script2.py
script1.py

证明两者同时运行(首先显示第二个脚本的输出)