2015-07-20 157 views
0

我希望你能幫助(一如既往)。我正在製作一個PhotoBooth,簡而言之,它有一個Python腳本來控制燈光(開啓30秒),另一個燈泡爲PhotoBooth拍攝4張照片。 我需要在5秒鐘之後運行燈光腳本,然後運行攝像頭腳本。我確信這很容易,但無法解決。以下是我所嘗試的:Raspberry Pi B型線程。同時運行2個Python腳本

我甚至不確定這是否適用於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() 

任何幫助你可以提供將是偉大的,因爲我敢肯定我是一個白癡。

+0

'Thread'目標參數應該是可調用的對象,而不是字符串。 –

+0

我希望我能像你做Lukasz一樣瞭解這些知識。我將如何做到這一點 - 我是一個相對n00b – user1721451

+0

爲什麼你需要用sudo運行腳本? –

回答

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完成(以及從腳本獲取輸出)

+0

非常感謝Joran,這是我無法理解的。 – user1721451