Pylance V2024.6.1

记录一下折磨我一天的问题

妈的这个气死我了

降级为Pylance V2023.12.1问题全部解决

这件事告诉我们一个道理:写作业就赶紧写,万一你用的环境、插件自动更新成不称心如意的样子,你就要花大量的时间去修复成原来的状态

问题描述

一共是两个问题

Python函数不自动补全括号()

经常用VSCode的朋友们都知道啊,输入函数会自动补全后面的()

比如,输入pr,提示出现print,此时按一下回车,你的屏幕上就出现了print(),而你目前的光标也会到括号的中间,这简直就是造福人类的操作啊

但是今天就突然不行了?

我查遍了stackoverflow、和各大中文技术博客平台,都告诉我把python.analysis.completeFunctionParens设置成true

我就这么做的啊,重启了不知道多少遍就是不行,给我急的,差点就换去用PyCharm了


最后发现是版本更新的问题以后我是真绷不住

byd,我最开始来用VSCode写Python就是因为自动补全太好用了,怎么你这更新给我把括号补全更新没了?

更搞笑的是,VSCode的Pylance插件主页图还有一个自动补全函数括号的gif动态图,新版本这功能没了你妈的算不算虚假宣传?

Anaconda环境设置解释器

我本地的Python环境是3.9,因为课程需要,又在Anaconda里安装了一个3.7的Python环境,并且在里面装了torchcv

我想的是在VSCode里设置一下对应工作区的Python解释器

好,代码能成功运行,那为什么我敲代码的时候你不能自动补全?

我按Ctrl + 鼠标左键甚至不能点到torch库的目录,但是能跑?编辑器找不到这个路径,但是编译器能找到?


stackoverflow给我翻了个遍,找到了一个比较靠谱但比较蠢的方案:Running numpy using anaconda and VS Code

这个解决方案是:

  1. 在本地命令行中conda activate pytorch先启动创建好的虚拟环境
  2. 再在这个启动好的环境中,用code指令打开VSCode

这个时候你就会发现编辑器成功高亮,也能成功补全

但是我感觉这个方法太蠢了,每次都要手动启动conda虚拟环境,有没有一种弱质方法,让我每次打开VSCode都能自动识别到?


在我查找官方手册、各大技术平台都未果后,万念俱灰的状态下,突然想到一个2021年乐子大赏里的一个段子:大连铁路各位同志们齐心协力排除万难,最终通过把Flash降低了一个版本解决了Flash停运导致关键系统崩溃的问题

就是说,有没有一种可能?我把VSCode中跟Python相关的插件降低几个版本就能解决问题了?

你说得对,但是我前脚把Pylance降低到V2023.12.1,后脚就全部正常了

既能自动补全括号,又能在设置Python解释器后成功识别到对应的包,import成功了

解决方案

降级Pylance插件到V2023.12.1(更高的版本我没试过了)

致敬中国大连铁路组传奇技术攻坚战:降级Flash版本

别当段子乐了,降级版本真的有用吧





参考资料

Using Python Environments in Visual Studio Code

python - Running numpy using anaconda and VS Code - Stack Overflow