Python IDLE 冻结

3 投票
2 回答
6518 浏览
提问于 2025-04-15 22:11

这真让人头疼,不过我不确定这个问题是我电脑特有的,还是IDLE本身就有这个问题。

当我在命令行里打印一个很长的列表时,可能在调试的时候不小心就会发生这种情况,程序就会崩溃,然后我得手动重启它。

更糟糕的是,如果你打开了几个编辑窗口,它总是会生成一些子进程,而这些子进程都得从任务管理器里手动关闭。

有没有什么办法可以避免这种情况呢?

顺便说一下,我用的是Python 3。

2 个回答

2

Squeezer这个扩展解决了一个问题。它不是直接显示那些很长的文本(这些文本会导致程序变慢),而是捕捉输出内容,然后显示一个按钮。你可以选择展开内容,或者在记事本中查看。

Squeezer已经包含在IdleX中,你可能会觉得这个工具很有用。

2

看起来tk在命令行窗口里需要写很多数据,这样会花费很多时间,当列表很长的时候,窗口就会变得无响应。

我做了:

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

当n等于100或1000的时候还可以。但一旦超过这个数,事情就开始变得慢了。比如n达到10000时,上下滚动页面就变得非常非常慢。

我怀疑没有解决办法。对于小的n值,可能清空一下窗口会有帮助,但可惜的是,idle并没有实现清空命令行窗口的方法。我不明白为什么,因为这应该不难……

编辑于2012年: 在过去的几个月里,IDLE的表现和功能通过一些扩展和插件得到了很多重要的改进,这些扩展和插件由IdleX提供。
意外打印大量数据的问题不再存在。当IdleX检测到这种情况时,它会显示一个警告,提示有数据存在,而不是直接打印出来。右键点击这个警告会在系统文本编辑器(Windows的记事本)中预览数据,而不是在idle的命令行窗口中。这样一来,命令行窗口就不会被数据弄得乱七八糟,也不会变慢。

enter image description here

撰写回答