VSCode Pylance高版本问题
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环境,并且在里面装了torch
和cv
库
我想的是在VSCode里设置一下对应工作区的Python解释器
好,代码能成功运行,那为什么我敲代码的时候你不能自动补全?
我按Ctrl + 鼠标左键
甚至不能点到torch
库的目录,但是能跑?编辑器找不到这个路径,但是编译器能找到?
stackoverflow给我翻了个遍,找到了一个比较靠谱但比较蠢的方案:Running numpy using anaconda and VS Code
这个解决方案是:
- 在本地命令行中
conda activate pytorch
,先启动创建好的虚拟环境 - 再在这个启动好的环境中,用
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