如何在pycharm中禁用python stdout缓冲区?

时间:2016-07-13 05:31:50

标签: python pycharm stdout stderr

我已经知道使用-u,将禁用python的stdout缓冲区。它在sublime和bash中工作,但在pycharm中,我设置了Run->Edit Configurations->Interpreter options->add -u,它没有。我的测试代码如下:

# -*- encoding: utf-8 -*-
import sys
print "stdout1"
print >> sys.stderr, "stderr1"
print "stdout2"
print >> sys.stderr, "stderr2"
print "stdout3"
print >> sys.stderr, "stderr3"

以下结果是" Run"窗口:

C:\Python27\python.exe -u "D:/Python Projects/compute - 2016.7.13/main.py"
stderr1
stderr2
stderr3
stdout1
stdout2
stdout3

Process finished with exit code 0

结果总是在变化,似乎' -u'没有工作

1 个答案:

答案 0 :(得分:1)

我认为问题与python缓冲输出无关:如果你在控制台中运行你的例子,顺序就是正确的。 IDE处理脚本进程的输出,并且必须捕获stdout和stderr,但是当两个流被截获时,不可能保留顺序。 以下是一些相关讨论:onetwothree