开发者社区> 问答> 正文

pyqt 编写的应用程序退出后崩溃?报错

崩溃描述如下:

问题签名:
  问题事件名称:	APPCRASH
  应用程序名:	python.exe
  应用程序版本:	0.0.0.0
  应用程序时间戳:	4e04e3f6
  故障模块名称:	QtCore4.dll
  故障模块版本:	4.8.5.0
  故障模块时间戳:	52133723
  异常代码:	c0000005
  异常偏移:	00000000001274b0
  OS 版本:	6.1.7600.2.0.0.256.1
  区域设置 ID:	2052
  其他信息 1:	55c7
  其他信息 2:	55c7eecfaf2708505ee26e0b1c34c0c8
  其他信息 3:	d34d
  其他信息 4:	d34dfd3bc71fd9578fdafbfcbcf49db9


联机阅读隐私声明:
  http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0804


如果无法获取联机隐私声明,请脱机阅读我们的隐私声明:
  C:\Windows\system32\zh-CN\erofflps.txt



由于程序在运行时不报错,在退出时才崩溃,所以个人觉得应该是资源回收出问题了,但是又不知道出现这种问题应该如何定位,调试。

期待各位指点!


展开
收起
爱吃鱼的程序员 2020-06-22 11:48:11 848 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    抓dump 

    debug

    如上述所说,没有在python代码中报错,只是退出时崩溃,debug无效

    由简单,到复杂。多运行几次。

    第1次,进去就退出。看是否崩溃。

    第2次,进去后,选一项模块运行。运行完后,马上退出。看是否崩溃。

    依次类推,遍历所有模块。

    可能是QT的事件循环退出后,强制释放调了Python代码所需的资源。在qApp.quit()后,再执行一下sys.exit(0)。
    @Xsank嗯,的确麻烦。我的问题通过这个方法搞定了。这个方法其实试过的,但是无效。由于不是过程式的代码,不太好找啊 @Xsank,哥们,你这个问题解决了吗?我现在也遇到这个问题了.出错信息都跟你一样.

    imoprtsip

    sip.setdestroyonexit(False)

     

    Reference

    WhenthePythoninterpreterexitsPyQt4(bydefault)callstheC++destructorofallwrappedinstancesthatitowns.Thishappensinarandomorderandcanthereforecausetheinterpretertocrash.Thisbehaviorcanbedisabledbycallingthesip.setdestroyonexit()function.

    PyQt5alwayscallssip.setdestroyonexit()automatically.

    2020-06-22 11:48:30
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
From Python Scikit-Learn to Sc 立即下载
Data Pre-Processing in Python: 立即下载
双剑合璧-Python和大数据计算平台的结合 立即下载