最近在做一个大概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

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



