2016-07-13 29 views
-1

Ich habe gewusst, dass mit -u der Stdout-Puffer von Python deaktiviert wird. Es funktioniert in sublime und bash, aber in pycharm, setze ich Run->Edit Configurations->Interpreter options->add -u, tut es nicht. Mein Testcode ist wie folgt:Wie zu deaktivieren Python Stdout Puffer in Pycharm?

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

Hier ist das Ergebnis in "Run" Fenster:

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 

Die Ergebnisse ändern sich immer, so scheint es, dass '-u' nicht

funktioniert
+0

@AkshatMahajan Mein Python ist 2.7.12 und >> bedeutet Redirect die Ausgabe – Ryan

Antwort

1

Ich denke, das Problem hängt nicht mit python gepufferter Ausgabe zusammen: Wenn Sie Ihr Beispiel in der Konsole ausführen, wäre die Reihenfolge korrekt. IDE verarbeitet die Ausgabe des Skriptprozesses und muss sowohl stdout als auch stderr abfangen, aber es ist nicht möglich, die Reihenfolge beizubehalten, wenn beide Streams abgefangen werden. Hier sind einige relevante Diskussionen: one, two, three.