文字列(shell = True)の代わりにリストを読み込んで、本当にイライラするサブプロセスモジュールが見つかりました。直感的に、subprocess.callは([ "モジュール"、 "リスト"])動作するはずですが、それはできませんし、利回りこの:subprocess.call(["module"、 "list"])が失敗するのはなぜですか?
File "test.py", line 45, in main
subprocess.call(["module","list"])
File "/tools/general/app/Python-2.7.3/lib/python2.7/subprocess.py", line 493, in call
return Popen(*popenargs, **kwargs).wait()
File "/tools/general/app/Python-2.7.3/lib/python2.7/subprocess.py", line 679, in __init__
errread, errwrite)
File "/tools/general/app/Python-2.7.3/lib/python2.7/subprocess.py", line 1249, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
しかし、subprocess.call("module list", shell=True)
作品。どうして?
おそらく、シェル初期化ファイルは 'module'が見つかるようにいくつかのパス操作を行いますか? – mgilson
'module'プログラムへのフルパスを使用するとうまくいきますか? – Barmar