不久前,我从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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。