0
端末のコマンドラインから「python /home/pi/temp/getTemp.py」を実行すると、 「エラー、シリアルポートがありません」というメッセージが表示されます。 tempディレクトリに移動して "python getTemp.py"を実行すると、うまく動作します。なぜ誰かが私に言うことができますか?ファイルへのパスを使用してPythonスクリプトが実行されない
#!/usr/bin/env python
import os
import sys
import socket
import datetime
import subprocess
import signal
port = "/dev/ttyUSB0"
tlog = '-o%R,%.4C'
hlog = '-HID:%R,H:%h'
clog = '-OSensor %s C: %.2C'
def logStuff(data):
with open("/home/pi/temp/templog.txt", "a") as log_file:
log_file.write(data + '\n')
def main():
try:
output = subprocess.check_output(['/usr/bin/digitemp_DS9097U', '-q', '-a'])
for line in output.split('\n'):
if len(line) == 0:
logStuff("len line is 0")
continue
if 'Error' in line:
logStuff("error in output")
sys.exit()
line = line.replace('"','')
if line.count(',') == 1:
(romid, temp) = line.split(',')
poll = datetime.datetime.now().strftime("%I:%M:%S %p on %d-%B-%y")
content =(romid + "," + poll + "," + temp)
print content
return content
except subprocess.CalledProcessError, e:
print "digitemp error:\n", e.output
except Exception as e:
logStuff('main() error: %s' %e)
os.kill(os.getpid(), signal.SIGKILL)
if __name__ == "__main__":
main()
あなたが指定したコードで 'port ="/dev/ttyUSB0 "'が使用されていないと、常にそれを見つけるためにdigitempに指示する必要があります。シリアルポートのみが参照されます。私はサブプロセスがあなたに見ているエラーを与えていると思われます。別のディレクトリから呼び出されることは期待できません。 – TemporalWolf