Raspberry Pi模型B线程。同时运行2个python脚本

时间:2015-07-20 18:32:46

标签: python raspberry-pi python-multithreading

我希望你可以提供帮助(一如既往)。我制作了一个光学平台,简而言之,有一个Python脚本来控制光线(开启30秒),另一个用于拍摄4张照片用于光面板。 我需要在5秒后运行light脚本,然后运行相机脚本。我确信这很容易,但无法解决问题。以下是我尝试过的内容:

我甚至不确定这对于Raspberry Pi是否正确,但这是我尝试过的。变体形式:

import threading
import time
def light():
    while time.time() <= start_time:
        pass
    threading.Thread(target="sudo python /home/pi/python/light30.py").start()
def camera():
    while time.time() <= start_time:
        pass
    threading.Thread(target="sudo python /home/pi/python/camtest.py").start()
start_time=time.time()+5
threading.Thread(target=light).start()
threading.Thread(target=camera).start()

你能提供的任何帮助都会很棒,因为我确定我是个白痴。

1 个答案:

答案 0 :(得分:1)

如评论中所提到的,线程期望运行python代码...而不是python文件...你可以使用子进程来实现你想要的

import subprocess
import time

lights_proc = subprocess.Popen(["/usr/bin/python","/home/pi/python/light30.py"])
time.sleep(5) # sleep for 5 seconds
print subprocess.Popen(["/usr/bin/python","/home/pi/python/camtest.py"],stdout=subprocess.PIPE,stderr=subprocess.PIPE).communicate()

最后的通信调用只是让它阻塞并等待camtest.py完成,然后退出这个脚本(以及从脚本中获取输出)