1

Python Tools for Visual Studio (VS2012) に切り替えて、プロジェクトを立ち上げて実行しようとしています。サブプロセスの stdout が Visual Studio の出力ウィンドウに表示されないという問題があります。問題を説明するために、いくつかのサンプル コードを作成しました。

test_console.py

import os
import subprocess
print 'printed from the main process'
command = 'python '  + os.path.join(os.getcwd(),'test_console_sub.py')
subprocess.call(command)

test_console_sub.py

print 'printed from a subprocess'

test_console.py を実行すると表示される python コンソールには、両方のファイルからの出力が正しく表示されます。

ここに画像の説明を入力

出力ウィンドウにサブプロセスの印刷ステートメントがありません

ここに画像の説明を入力

関連する設定の一部を次に示します。

ここに画像の説明を入力

サブプロセスの print ステートメントを Visual Studio の出力ウィンドウに表示するにはどうすればよいですか? 理想的には、出力ウィンドウは Python コンソール ウィンドウとまったく同じように表示されます。

4

2 に答える 2

3

As a workaround (seeing the answer of AnojiRox) you could catch stdout and stderr from the subprocess and then print it from the main process, but you need to use Popen and its communicate method due to the deadlock problem stated in the docs.

import os
import subprocess

print 'printed from the main process'
command = ['python', os.path.join(os.getcwd(), 'test_console_sub.py')]
p = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
(stdout, stderr) = p.communicate()
print stdout
print stderr
于 2012-09-25T20:20:08.500 に答える
-1

できません。私はこれを以前に検索しましたが、何も見つかりませんでした。私が間違っている場合は修正してください。

代わりに、テキスト エディターと Python コンソールを使用してみてください。

于 2012-09-25T20:08:39.363 に答える