python软件工程环境升级总结

我使用Python开发软件,使用PyQt5开发GUI。IDE是VSCode。

最近Python版本由旧版本Python3.7升级到Python3.11,然后出现了若干问题需要修复,这里记录我自始至终的修复过程。

我把遇到的一些问题罗列出来,如下:

  1. np has no attribute int。新版Python强调使用明确的类型,需要将np.int指明为具体的类型,比如np.int64或者np.uint8;
  2. 若干函数的形参类型和传入的变量类型不一致,例如形参是int类型,但传入的是float。这在旧版本Python中是能正常工作的,但是新版Python会出现运行时错误。例如QSize、setWidth()、setColumnWidth()函数等。这也表明了Python在强调类型一致的重要性。
  3. 从numpy数组图像转换到QPixmap的图,添加到QGraphicsScene显示时会崩溃。原本的代码是先将数组转为PIL的Image,再用fromarray().toQPixmap()转换成QPixmap的,这可能已存在不兼容的情况。通过依赖QImage中转能正常运行。

整个项目的代码量庞大,如何做到滴水不漏呢?如果仅仅依赖记忆和软件测试,显然不能100%保证能修复完,这里我尝试利用了一些类型检查工具,Pylance、Mypy和Pylint。

极力推荐的是Pylance,配置方便,提示明确,没有太多的“无关紧要”的提示(相比于另外两个工具而言)。Mypy和Pylint配置起来很麻烦,参数名和参数值都没有提示,需要进入官网,一边阅读手册一边进行配置。Pylance则不同,在VSCode中配置时会自动列出所有可配置项,并且每一项都有文字说明。

这可能也是为什么VSCode会把Pylance作为默认语言服务器的原因。

***

使用Pylance检查整个项目的类型错误,需要将诊断模式设置为 workspace,否则仅对当前打开的文件生效。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

最强玩者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值