Python会崩溃吗?

3 投票
2 回答
4706 浏览
提问于 2025-04-17 03:32

我在Windows上运行一个独立的Python v3.2.2/Tkinter程序,没有调用任何外部库。使用Idle这个工具很方便,它能帮助我报告程序中的错误,现在程序已经调试到没有错误被报告的程度了。不过,Python解释器偶尔会在一些不可预测的时刻崩溃——有时候操作运行得很好,但突然就卡住了。崩溃时,Windows会弹出一个对话框,问我是否要把崩溃报告发送给微软:

"pythonw.exe has encountered a problem and needs to close.
 We are sorry for the inconvenience."

Python中的崩溃报告提到,解释器本身很少崩溃。我的问题是:无论Python脚本中有多少错误,理论上有没有可能导致解释器崩溃?因为没有错误被报告,而崩溃又是随机发生的,所以很难找出原因。但如果理论上解释器应该是不会崩溃的,那我做的某些事情可能触发了一个bug。

这个代码(一个滚动条形图的演示)可以在wxPython中最好的实时绘图小部件是什么?找到。它有三个按钮——运行、停止、重置。要引发崩溃,只需随机按这些按钮大约一分钟。如果没有任何互动,演示将会一直运行而不会崩溃。

2 个回答

4

其实,Python并不是完全不会崩溃,特别是当你使用外部库的时候,比如TkInter就是一个外部库。

还有专门的一页在讲这个问题:http://wiki.python.org/moin/CrashingPython

6

当然,理想的情况是像Python这样的程序永远不会崩溃。不过,现实世界并不完美。我觉得更有用的问题是:“如果Python崩溃了,我该怎么办?”如果你想帮助改善这个情况,首先可以去Python问题追踪器快速搜索一下,看看是否有人已经报告了类似的问题,或者这个问题是否在更新的版本中已经被修复。如果没有找到类似的问题,试着找出重现这个问题的方法,清楚地记录下步骤、你使用的操作系统及其版本、Python的版本以及相关的第三方库版本。然后,你可以提交一个新的问题,提供所有这些细节。要记住,Python和许多开源项目一样,都是由志愿者维护的,所以不能保证问题会在什么时候被深入调查或解决(大多数问题最终都会得到解决),但你可以为自己做的贡献感到高兴,可能还为其他人节省了时间和麻烦。如果你在提交问题之前想听听其他人的意见,可以在python-list邮件列表/新闻组上询问一下。

撰写回答