排一个大坑: 在使用vscode打开python项目时,如下图所示,报错Unable to import “xxxxx”,但是点击mmui可以跳转到对应代码,说明settings.json文件中python解释器设置的没有问题。
此时,mmui目录位于项目根目录下,一直以为是把根目录没有加载到PYTHONPATH变量中,但是经过研究发现,默认情况下,根目录是在PYTHONPATH变量中的。那是什么原因呢?
解决方案: 最后发现,是jedi的问题,在setting中搜索language server,把python的language server从jedi改为pylance,即可解决问题,不会再出现错误提示。感觉这像是jedi的一个bug。
反思: 那么jedi
和pylance
是什么呢?
language server:
jedi和pylance都是vscode中python的两种language server,而language server是用于增强我们的编辑代码体验的,它们可以提供代码自动补全,错误检查,以及跳转到定义位置等功能。官方文档介绍。
jedi和pylance:
jedi是一个开源的python语言服务器,好用并且快速。
pylance是2020年6月由微软发布的性能更高,功能更丰富的python语言服务器,在21年9月份经历了一波大的更新后,微软将python语言服务器默认更换为pylance。
因此, 上述问题可能是jedi的一个bug。