更新:subprocess.callの代わりにを使用するsubprocess.Popenと、問題は解決されます。原因を知っている人はいますか? そして、別の問題が発生しました:出力を制御する方法が見つからないようです...出力をsubprocess.call文字列などにリダイレクトする方法はありますか? ありがとう!
プロジェクトのビルドに使用しようとしてDevenvいますが、コマンド プロンプトに次のように入力すると問題なく動作しますdevenv A.sln /build "Debug|Win32"が、python を使用して上記と同じ行のPopen(cmd,shell=true)whereを使用して実行すると、何も表示されません。cmdを削除し|てのみに変更すると"Debug"、機能します....
なぜこれが起こるのか誰か知っていますか?\前にを入れてみました|が、まだ何も起こりません..
これは私が使用しているコードです:
from subprocess import Popen, PIPE
cmd = ' "C:\\Program Files\\Microsoft Visual Studio 8\\Common7\\IDE\\devenv" solution.sln /build "Debug|Win32" '
sys.stdout.flush()
p = Popen(cmd,shell=True,stdout=PIPE,stderr=PIPE)
lines = []
for line in p.stdout.readlines():
lines.append(line)
out = string.join(lines)
print out
if out.strip():
print out.strip('\n')
sys.stdout.flush()
...これは機能しませんが、 と交換Debug|Win32するとDebug、完全に機能します..
ここにコメントをありがとう