其他分享
首页 > 其他分享> > 语句发生时,无法立即打印出有思想的树冠

语句发生时,无法立即打印出有思想的树冠

作者:互联网

不久前,我从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没有合理的解决方法,只能“适当地”使用冲洗功能.

https://support.enthought.com/entries/22157050-Canopy-Python-prompt-QtConsole-Can-t-run-interactive-OS-shell-commands

标签:canopy,enthought,python
来源: https://codeday.me/bug/20191030/1967928.html