更换设备后flask项目出现的两个bug

问题一

今天遇到一个bug,是另外一个莫名其妙的错误,告诉我什么参数布拉布拉的

TypeError: vars() argument must have __dict__ attribute

检查

这是一个我比较看不懂的错误,但是由于在于我的另一台机器上,我可以运行该程序,那么我第一反应就是版本问题

因为我的另一台机器用的是python3.9,而这台是3.10我第一反应是python版本的问题

但是仔细想想都是驱动库包运行,不至于是python的问题,可能是第三方库的问题

在这里插入图片描述

由于报错的都是matplotlib的错,我检查了matplotlib的版本,发现一个是3.6.2,一个是最新版3.7

解决

通过更换matplotlib版本,成功解决

这里有个小插曲,由于虚拟环境,我选择在pycharm内部进行包的直接更换版本,教程如下

更换设备后flask项目出现的两个bug_第1张图片

结果报错了,具体是啥我忘了,然后我直接卸载了当前的包,再重新安装了指定版本的matplotlib,成功解决1

问题二

图片无法实时更新

解析

这也是我在新机器上面遇到的问题,这是一个通过ajax进行的图片更新(先后端更新本地的图片,再让前端更换为本地图片),结果图片无法实时更新了

我对比了两台机器的差异,浏览器不是同一个,我使用的是谷歌,另一台机器是ie,于是我在ie和谷歌分别测试,发现确实是浏览器的问题

应该是缓存机制导致了ie不会实时渲染图片,发现你的图片地址没有更换后,ie选择了沉默

总结

测试环境和真实环境可能会有很多的差异,最简单的方法当然还是直接对比其中差异点,根据差异点进行调整

但是作为一个成熟的程序员,在我们设计软件/web/app的时候,就应该考虑各种不同设备之间可能存在的差异,考虑不同版本的包可能出现的问题

所以这里有两种方案分别应对上面的问题

第一是,对于一个固定的应用,应该保证一个虚拟环境和包的版本固定打包,这里可以生成一个requement.txt,这样我们更换设备时,就可以开一个新的虚拟环境,直接通过这个需求文档安装固定版本的第三方包

第二,对于js的一些插座,不同浏览器可能会有不同的表现,甚至不同的设备都有不同的表现,那么就可以率先考虑媒体大小和没每个浏览器对应的一些表现/给出一些提示

你可能感兴趣的:(js,flask,python,python,flask,bug)