私はPythonで初心者だ、と私は、コマンドラインアプリを呼び出すようにしようとしてきたが、それは失敗します。呼び出すアプリは
>>> import subprocess as s
>>> s.call("gpio -g read 17")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.6/subprocess.py", line 470, in call
return Popen(*popenargs, **kwargs).wait()
File "/usr/lib/python2.6/subprocess.py", line 623, in __init__
errread, errwrite)
File "/usr/lib/python2.6/subprocess.py", line 1141, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
しかし、その後、私はshell=True
それを追加した場合すべて動作し始めます。なぜ誰かが説明できますか?
>>> import subprocess as s
>>> s.call("gpio -g read 17", shell=True)
>>> 0
なぜ "shell = True"を追加すると機能するのですか? –
'shell = True'の場合、このコマンドはシェルに送られ、シェルは分割引数を分割します。 – mgilson
@ MarkIngram - 明らかに私たちは同時にコメントしていました。 – mgilson