Python IDLE冻结

时间:2010-04-30 10:05:36

标签: python python-idle

这绝对令人沮丧,但我不确定以下内容是否仅在我的机器或IDLE上是一个问题。

当尝试在shell中打印一个长列表,而这可能是在调试时偶然发生的,程序会崩溃,你必须手动重新启动它。

更糟糕的是,如果您打开一些编辑器窗口,它总会产生一些子流程,并且每个子流程都必须从任务管理器手动关闭。

有什么办法可以避免吗?

顺便说一句,我正在使用Python 3。

2 个答案:

答案 0 :(得分:2)

似乎需要在shell框架中编写大量数据,这需要花费大量时间,当列表很长时,它就会变得没有响应。

我做了:

>>a = range(n)
>>print(list(a))

n = 100或n = 1000就可以了。在那之后,事情开始变慢。对于n低至10000,上下移动页面变得非常非常慢。

我怀疑没有解决方案。对于n的小值,可能会有助于clear()窗口,但遗憾的是空闲时没有实现任何清除shell的方法。我不明白为什么,因为它应该不难......

修改2012 : 在过去几个月中,IDLE行为和功能通过 IdleX 提供的扩展和插件的集合得到了许多重要的改进。 意外打印大量数据不再是问题。当IdleX检测到这种情况时,它会显示一个警告,指示数据的存在而不是打印它。右键单击警告会生成数据预览,而不是在空闲shell中,而是在系统文本编辑器(Windows中的记事本)上。通过这种方式,shell不会混乱数据也不会减速。

enter image description here

答案 1 :(得分:2)

Squeezer扩展程序解决了这个问题。 Squeezer不是显示长文本(这是减速的来源),而是捕获输出并显示一个按钮。您可以选择扩展内容或在记事本中查看。

挤压器包含在IdleX中,您可能会发现它很有用。