lirc - Python 反脚本不会 运行
lirc - Python counter script will not run
我很困惑为什么以下脚本 (count.py) 不会 运行 使用红外遥控器
#!/usr/bin/env python
from __future__ import with_statement
with open('num.txt','r+') as f:
counter = str(int(f.read())+1)
f.seek(0)
f.write(counter)
我有其他脚本可以正常工作,即当映射到同一个按钮时,这个脚本可以毫无问题地执行
#!/usr/bin/env python
import RPi.GPIO as GPIO ## Import GPIO library
GPIO.setmode(GPIO.BCM) ## Use board pin numbering
GPIO.setup(22, GPIO.OUT) ## Setup GPIO Pin 7 to OUT
GPIO.output(22,True) ## Turn on GPIO pin 7
GPIO.cleanup()
问题脚本将使用 'sudo python count.py' 从命令行运行,如果我使用 sudo 从命令行启动 irexec 那么它也会 运行 使用遥控器。本质上,以这种方式启动 irexec 是一个可行的解决方案。尽管如此,我仍然很想知道为什么在目前的条件下脚本不会 运行.
可能是问题脚本无法打开"num.txt":要么是运行作为没有权限的用户,要么是运行来自您不期望的目录,因此看不到 num.txt 的相对路径。在这种情况下,脚本会因错误而失败,但这可能会在某处丢失。
尝试检查日志以查看是否报告了任何错误。
您还可以更改脚本以使用 num.txt 的绝对路径,并捕获异常并将它们写入某处的日志(也是绝对路径和所有写入权限?-可能在 /tmp 中)
我很困惑为什么以下脚本 (count.py) 不会 运行 使用红外遥控器
#!/usr/bin/env python
from __future__ import with_statement
with open('num.txt','r+') as f:
counter = str(int(f.read())+1)
f.seek(0)
f.write(counter)
我有其他脚本可以正常工作,即当映射到同一个按钮时,这个脚本可以毫无问题地执行
#!/usr/bin/env python
import RPi.GPIO as GPIO ## Import GPIO library
GPIO.setmode(GPIO.BCM) ## Use board pin numbering
GPIO.setup(22, GPIO.OUT) ## Setup GPIO Pin 7 to OUT
GPIO.output(22,True) ## Turn on GPIO pin 7
GPIO.cleanup()
问题脚本将使用 'sudo python count.py' 从命令行运行,如果我使用 sudo 从命令行启动 irexec 那么它也会 运行 使用遥控器。本质上,以这种方式启动 irexec 是一个可行的解决方案。尽管如此,我仍然很想知道为什么在目前的条件下脚本不会 运行.
可能是问题脚本无法打开"num.txt":要么是运行作为没有权限的用户,要么是运行来自您不期望的目录,因此看不到 num.txt 的相对路径。在这种情况下,脚本会因错误而失败,但这可能会在某处丢失。
尝试检查日志以查看是否报告了任何错误。
您还可以更改脚本以使用 num.txt 的绝对路径,并捕获异常并将它们写入某处的日志(也是绝对路径和所有写入权限?-可能在 /tmp 中)