语句发生时,无法立即打印出有思想的树冠
作者:互联网
不久前,我从Enthought的旧EPD切换到了他们较新的Canopy系统.在大多数情况下,它是不错的,但是其中一个方面特别令人讨厌.
每当我从Canopy iPython环境中或从命令行运行python脚本时,当该脚本的那一部分被点击时,我的打印语句实际上都不会立即被打印.取而代之的是,多张打印稿似乎在以后一次全部执行.
举个例子…
import numpy as np
print "About to start long computation..."
a = np.random.randn(1e8)
print "Computation finished."
在同时生成两个语句时,直到完成生成a之后,才打印第一条语句. (您可以通过观察CPU监视器来判断何时进行计算.)
有人知道这是怎么回事吗?如果相关,我将在Windows 7计算机上运行Canopy 1.0.0.1160,并使用Python 2.7.3 64bit.
解决方法:
不,这不是EPD和Canopy之间的更改.虽然我认为可能会有一些默认情况下会缓冲的python发行版,但EPD并不是其中之一-性能下降可能太严重了(如kindall的评论所述.)最好让程序员决定何时对用户重要立即查看控制台输出(通常用于状态更新).
顺便说一句,Canopy GUI中的IPython就是IPython QtConsole.如果您依赖控制台I / O,则可能还需要了解QtConsole的这一长期存在的问题:
我认为Canopy IPython没有合理的解决方法,只能“适当地”使用冲洗功能.
标签:canopy,enthought,python 来源: https://codeday.me/bug/20191030/1967928.html