subprocess.Popen () файл python с бесконечным циклом никогда не вызывает файл - PullRequest
0 голосов
/ 08 марта 2019

У меня есть два .py файла на Raspberry Pi, где я пытаюсь вызвать один файл keep_awake.py, который содержит:

import time
import serial
while True:
    time.sleep(5)
    for option in ["on", "off"]:
        for board in ["ACM0", "ACM1"]:
            request = serial.Serial(f"/dev/tty{board}", 19200, timeout=1)
            for j in [0,1,2,3,4,5,6,7,8,9,"A","B","C","D","E","F"]:
                request.write(f"relay {option} {j}\r".encode("utf-8"))
            request.close()
        time.sleep(.1)

Этот код записывает в реле нажатие кнопок с помощью припаянных проводов.в печатные платы.Я проверил этот код и знаю, что он работает.Тем не менее, когда я вызываю его из родительского файла, как это subprocess = Popen(["python", "/home/pi/Desktop/DLMW-ART/tools/keep_awake.py"], stdout=PIPE, stderr=STDOUT, universal_newlines=True) Код не запускается.

Цель этого состоит в том, чтобы нажать кнопку устройств, чтобы она оставалась активной во время обновления прошивки, а затем завершить подпроцесс, чтобы он не мешал остальной части сценария.Поэтому я хочу, чтобы родительский файл выглядел следующим образом:

#Several print statements to let me know where in the script I am
subprocess = Popen(["python", "/home/pi/Desktop/DLMW-ART/tools/keep_awake.py"], stdout=PIPE, stderr=STDOUT, universal_newlines=True)
#Firmware update code will live here
time.sleep(20) #used for testing the call
subprocess.kill()

Этот код выполняется в цикле, поэтому я четко вижу несколько операторов печати в основном файле, но в подпроцессе ничего не происходит, иустройства не нажимаются.Я делаю подпроцесс. Неправильно открыт вызов?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...