【发布时间】:2017-07-03 21:45:49
【问题描述】:
我运行一个 Rpi W (Rbian Jessie),就像一个带有以下脚本的延时倒计时系统,它允许每分钟拍照并在按钮关闭时休眠。程序每 5 秒检查一次按钮。
# This Python file uses the following encoding: utf-8
from time import sleep
from picamera import PiCamera
import os
import time
import RPi.GPIO as GPIO
import picamera
import datetime as dt
GPIO.setmode(GPIO.BCM)
GPIO.setup(17, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
os.system('sudo python /home/pi/log.py')
check = GPIO.input(17)
while check == 0: #si l'état initial du bouton = 0
check = GPIO.input(17)
print(check)
sleep(5)
while check == 1: #si l'état initial = 1
with picamera.PiCamera() as camera:
camera.resolution = (1280, 720)
sleep(1)
t1 = dt.datetime.now().strftime('-%d_%m_%Y-%H_%M_%S')
t2 = 'IMG'+ t1
camera.capture('/home/pi/Pictures/%s.jpg' % t2)
print('Captured %s' % t2)
sleep(5)
check = GPIO.input(17)
print(check)
sleep(5)
check = GPIO.input(17)
print(check)
sleep(5)
check = GPIO.input(17)
print(check)
sleep(5)
check = GPIO.input(17)
print(check)
sleep(5)
check = GPIO.input(17)
print(check)
sleep(5)
check = GPIO.input(17)
print(check)
sleep(5)
check = GPIO.input(17)
print(check)
sleep(5)
check = GPIO.input(17)
print(check)
sleep(5)
check = GPIO.input(17)
print(check)
sleep(5)
check = GPIO.input(17)
print(check)
sleep(5)
check = GPIO.input(17)
print(check)
sleep(4)
check = GPIO.input(17)
print(check)
while check == 0: #si l'état initial du bouton = 0
check = GPIO.input(17)
print(check)
sleep(5)
我敢肯定这个剧本是可憎的......
但我想做的是:调用另一个名为 log.py 的脚本(监控 T° 和时间/分钟)。但是,主脚本在以下行之后停止:#os.system('sudo python /home/pi/log.py')... 如果没有此行,脚本运行正常。
有人知道吗?
【问题讨论】:
-
你能提供
log.py的代码吗? -
尝试创建一个只调用
os.system('sudo python /home/pi/log.py')的 Python 脚本 - 您将可以更轻松地进行调试。 -
“主脚本正在停止”是什么意思?它崩溃了吗?绞刑?有错误输出吗?
log.py脚本是否正在运行(运行ps aux以查看所有正在运行的程序)? -
它是否在寻找 sudo 凭据
-
主脚本停止,因为它调用 log.py,所以如果没有子进程并行执行这两项操作,它就无法继续,抱歉不是很清楚.. 谢谢大家的回答? ???
标签: python button call os.system