我在Raspberry Pi上有两个.py文件,我试图在其中调用一个文件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()
此代码循环运行,因此我可以清楚地看到主文件中的多个打印语句,但是在子过程中什么也没有发生,并且没有单击设备。我打出subprocess.Popen错误吗?