不久前,我从Enthought旧版的EPD切换到他们更新的Canopy系统。总体而言,这很好,但其中一个方面一直特别令人困扰。
每当我在Canopy iPython环境中或从命令行运行Python脚本时,我的print
语句都不会立即打印出来。相反,多个print
似乎会在稍后的时间一起执行。
例如...
import numpy as np
print "About to start long computation..."
a = np.random.randn(1e8)
print "Computation finished."
直到生成a
完成后,才会打印第一条语句,此时两个语句同时被打印。(您可以通过观察CPU监视器来判断何时进行计算。)
有人知道这里发生了什么吗?如果相关,请注意,我正在运行Canopy 1.0.0.1160,使用Python 2.7.3 64位在Windows 7机器上。
import sys
并在打印语句之后调用sys.stdout.flush()
,那么打印的结果是否会立即显示? - Danicastdout
。 - kindallprint
语句将刷新缓冲区。 - Danica