切换到Pylance:将你的VSCode编程体验焕然一新!
Pylance是微软官方在2020年宣布推出的一种新的Python语言服务器,利用语言服务器协议与VSCode进行通信,能够极大改善你的Python编程体验。Pylance现在作为VSCode的扩展已经上架Visual Studio Marketplace,仅需鼠标单击就可以下载安装该插件(注意:需要先卸载掉Pyright)。
什么是VSCode语言服务器协议?
在了解Pylance的功能之前,我们需要了解VSCode中语言服务器协议(language server protocol)的概念。
语言服务器协议是VSCode为了解决语言扩展中的痛点来实现的一套协议,主要为了解决下面三个问题:
- 语言相关的扩展都是用该语言的母语写的,不容易集成到插件中。这是因为大量的语言都带有“运行时”(运行时指的是?)
- 语言扫描相关的工作都比较占用CPU资源,运行在VSCode内部不如放在独立进程,甚至远程服务器上更好。
- 如果没有语言服务器协议的话,每种语言服务都需要适配多个编辑器,同样每种编辑器也需要适配各种语言服务,这会造成很大的资源浪费,如下图:

VSCode的Python语言服务器—Pylance
其实在2018年,微软就发布过一种Python语言服务器,目的是为VSCode引入Visual Studio 丰富的 Python IntelliSense 支持(IntelliSense是微软发布的一款基于人工智能的代码补全插件)。这一次发布的Pylance就是微软对其的最新更新版本,在微软的静态类型检查工具Pyright基础上进行开发。
Pylance主要功能有:
- Docstrings. 只需要把鼠标悬浮在对应的类、函数、方法的上方就可以显示对应的字符串文档。
- 参数提示. 在调用一个函数、类、方法时,Pylance能够提示详细的参数信息。
- 自动导入. 当我么用到某个未导入的包或者模块时,可以快速import对应的模块。
- 代码补全. 自动补全代码。
- 代码诊断. 对Python代码进行诊断,对于不符合语法规范的代码进行划线提示。
- 引用和跳转. 跳转到函数或变量的定义处。
- 类型检查. 这个功能使用Pyright中的规则集,可以帮助提升代码质量。
- 多工作区. 支持多工作区,可以在同一个Visual Studio Code会话中打开多个文件夹。
- 代码提取. 通过单击提取函数或变量。