python.exe中发现了未经处理的win32异常

在搜狗输入法中登录了QQ就出现了调试程序结束时显示python.exe中发现了未经处理的win32异常的问题,以为是pycharm和搜狗的原因,于是乎将其都卸载了,重新下载了vs code可以正常调试,但问题是不习惯用vs code,它的调试结果矩阵显示没有pycharm看起来直观,所以重新下载了pycharm。然后这个问题还是存在(或许这就叫黑天鹅事件吧)=。=

在系统给的调试工具中将调试器类型改为脚本

 

这是参考了百度上的方法,有用吗?没有用=。=

进行多次断点调试,终于发现是matplotlib有问题,打开console,提示错误信息为:

主线程不在主循环中。。。

网上给的建议是将import matplotlib.pyplot as plt改为:

import matplotlib.pyplot as plt
plt.switch_backend('agg')

改了之后确实不再出现python停止工作的问题了,但图片不再显示了。提示信息是,agg是非用户交互方式,所以不显示图片。这对于一些需要在循环里观测数据变化的情况非常不利。所以还是想解决这个Tkagg显示图片错误的问题。

由于Tkagg是交互式方法,按照网上建议的方法,首先更新了matplotlib的包,然后添加了语句

plt.interactive(True)

报错界面变为了:

interactive模式成功开启了,但还是有错,可能错误原因在于那个我无法理解的“主线程不在主循环中”

看别人对这句话的理解是:

并建议将作图语句注释掉。。。(太粗暴了

matplotlib必须在主线程中进行调用,而多次循环画图可能就会进入其他线程中,我在登录搜狗用户之前(背锅侠xx),程序是可以正常调试的,从来也没有这个问题。所以也许有更好的解决方法。

最终的解决方案是:

采用agg,但对于图片不能显示的这一问题,退而求其次的利用plt.savefig()函数将其保存,并采用os.system('pause')在原本显示图片的地方设置任意键继续,虽然麻烦了些,但也只能如此了=。=

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值