

Umí někdo programovat v Pythonu?
Ahoj, jsem zatím začátečník a vyrobil jsem si z Raspberry Pi videochůvičku... Otevírám z masterscriptu druhý skript a potřebuju, aby ten první (master) počkal, až ten volaný doběhne... Napadlo mě využít třídu Popen a udělal jsem to takto (inkriminované místo tučně a kurzívou):
#!/usr/bin/python
import RPi.GPIO as GPIO
import time
import os.path
import subprocess
from gpiozero import MotionSensor
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.setup(4, GPIO.IN, pull_up_down = GPIO.PUD_UP)
GPIO.setup(17, GPIO.IN, pull_up_down = GPIO.PUD_UP)
GPIO.setup(23, GPIO.OUT)
GPIO.setup(24, GPIO.OUT)
pir = MotionSensor(4)
zapnuto = GPIO.input(17)
pohyb = GPIO.input(4)
while zapnuto == False:
pohyb = GPIO.input(4)
if pohyb == True:
print("Pohyb_bezAlertu")
time.sleep(5)
if pir.wait_for_motion(timeout=10):
print("Alert")
[b][i]import subprocess
process = subprocess.Popen("/home/pi/Alert+Zvuk.py", shell=True)
process.wait()[/i][/b]
else:
if os.path.isfile('active') == True:
time.sleep(300)
os.remove('active')
GPIO.output(23, False)
GPIO.output(24, False)
Na Python komunitě na face jsem dostal ještě radu na řádek, kde se volá druhý script následovnou:
process = subprocess.Popen("home/po/Alert+Zvuk.py",shell=True,stdin = subprocess.PIPE,stderr = subprocess.PIPE,stdout = subprocess.PIPE)
Ale obě varianty stejný výsledek. Chybu žádnou nehodí, ani syntaxe, ani Traceback, druhý script není spuštěn a smička "while" pokračuje dál, čili zase čeká na pohyb... Už fakt nevím jak na to. Můžu tam samozřejmě prásknout klasický "call" a pak time.sleep(Přibližný_čas_volaného_scriptu), ale to asi nejsou nejlepší programovací návyky...
Díky moc za případnou odpověď.
Pre vkladanie kódu používajte tag 'code' a nie 'quote', aby ste zachovali odsadenie. (moose)