Matplotlib/Cartopy/PyQt绘图调用某一函数如colorbar后窗体闪退

最近在做一个大概3、4万行python代码(约java10万行业务量)的项目,在把项目从mac迁移到win10和win7系统测试时发生了奇怪的bug,就是一旦绘图,窗体就直接闪退,连报错打印的信息都没留下,但在mac上可正常运行。由于项目涉及到众多包和框架,比如xarray、cfgrib、pyqt5、cartopy、pytorch等等,由没有报错信息,加上geos那套对不同操作系统、各个包不同的版本要求都比较严格,稍有不对号入座就会发生奇怪的bug,所以一时对于bug的排查比较难下手。

最后经过连续5小时的排查,发现该闪退原因既不是Cartopy版本、不是Cartopy的地理坐标信息转换、也不是PyQt作为不同操作系统绘图后端的差异引起的原因,而是定位到colorbar这个函数。

后面单独拎出来做对比实验发现,在mac上使用colorbar正常运行,但在windows上一使用该函数窗体立马闪退,难道colorbar还有操作系统的差异?

于是马上去官网拷贝了colorbar的demo一运行,好家伙,也是闪退,于是破案了,是matplotlib安装的时候由于未知原因产生了隐藏错误。

当然我心里肯定知道这个未知原因,因为项目涉及的还挺多,所以要下载各个领域的包,为了满足特定版本,有的只能用pip装,有的只能用conda装,有的只能用conda-forge装,而这些工具混着用就有风险,一旦顺序不对就会产生冲突,而我的matplotlib肯定也是在这种情况下变残缺的。

关键的信息是一行不经意的警告,翻了下,长这样:

WARNING: Error parsing requireme

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值