我切换到Visual Studio的Python工具(VS2012),我正在努力让我的项目启动并运行。我遇到的问题是没有在Visual Studio输出窗口中显示的子进程的stdout。我已经创建了一些示例代码来说明问题。
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控制台正确显示两个文件的输出。
输出窗口缺少子流程打印语句
以下是一些相关设置
如何让subprocess print语句显示在Visual Studio输出窗口中?理想情况下,输出窗口看起来与python控制台窗口完全相同。
答案 0 :(得分:3)
作为一种解决方法(查看AnojiRox的答案),您可以从子进程中捕获stdout和stderr,然后从主进程打印它,但是由于所遇到的死锁问题,您需要使用Popen及其communicate
method在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
答案 1 :(得分:0)
你做不到。 我之前搜索过这个,但一无所获。如果我错了,请纠正我。
尝试使用文本编辑器和python控制台。