Python 2.7を使用してWindows上で正常に動作するプログラムのMac版をやろうとしています。 Mac(VirtualBoxで動作するOS X El Capitan)では、シェルに渡す引数が正しく認識されないため、失敗します。MacでのPython 2のサブプロセス引数のエラー
オリジナルコード:
for item in source_files:
# core process
output = sub.Popen(["mhl", "verify", "-vv", "-f", item, ">", text_report],
shell=True,
stdout=sub.PIPE,
stderr=sub.PIPE)
stdout_value, stderr_value = output.communicate()
の下でマックのみ 'MHL' 引数が認識されているので、私はこの試みた:コマンドの機能今
sub.Popen(['mhl verify -vv -f', item, '>', text_report]
をしかしアイテム(.mhlファイル)があります
sub.Popen(['mhl verify -vv -f', '/Users/simon/Documents/Documents.mhl', '>', text_report]
と、この:
認識されていないので、私はこれを試してみました3210sub.Popen(['mhl verify -vv -f', r'/Users/simon/Documents/Documents.mhl', '>', text_report]
同じ結果が表示され、mhlファイルは '-f'引数の後に指定する必要があります。最初の引数に項目を直接追加すると、正常に機能します。
sub.Popen(['mhl verify -vv -f /Users/simon/Documents/Documents.mhl', '>', text_report]
ここでは何が欠けていますか?
元のコードでは 'mhl'引数だけが認識されているように、あなたの答えはありがたいですが、うまくいきません。実際に 'mhl verify -vv -f'は' verify -vv -f '引数を指定したmhl実行ファイルの呼び出しとして正しく認識されますが、 '-f'引数の後ろにmhlファイルがあるはずです。 –
@SimonTheChain: 'item'、'> '、' text_report'も渡します。 –
@SimonTheChain:updated;私はあなたが 'shell = True'を設定したことを忘れていました。ここでは 'mhl verify -vv -f item'コマンドが実行されています。 –