0

次のスクリプト (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 を開始することは実行可能な解決策です。それにもかかわらず、現在の状況でスクリプトが実行されない理由を突き止めたいと思っています。

4

1 に答える 1

0

問題のスクリプトが「num.txt」を開くことができない可能性があります。権限を持たないユーザーとして実行されているか、予期しないディレクトリから実行されているために表示されません。 num.txt への相対パス。この場合、スクリプトはエラーで失敗しますが、これはどこかで失われている可能性があります。

ログをチェックして、エラーが報告されているかどうかを確認してください。

また、num.txt への絶対パスを使用するようにスクリプトを変更し、例外をキャッチしてどこかのログに書き込むこともできます (絶対パス、およびすべての書き込み権限? - おそらく /tmp 内)。

于 2015-09-20T08:43:25.457 に答える