Ubuntu 20.04下VS Code启动Pylance报stubPath无效目录错误的原因与修复方案
报错根本原因
这个报错不会中断Pylance的核心代码补全、类型检查功能,本质是配置路径与实际文件系统不匹配触发的校验提示:
- Pylance底层基于Pyright引擎运行,
stubPath是引擎定义的配置项,用于指定存放自定义Python类型存根(.pyi格式文件)的目录,这类文件一般用来补全第三方库没有自带官方类型声明的场景,提升类型提示的准确性 - 日志里的四条报错,分别对应你本地四个Python项目里残留的历史配置:之前调试Pylance设置时,曾给这几个项目都指定了「项目根目录下的
typings文件夹」作为stubPath路径,但这些项目里从来没有实际创建过对应的文件夹 - 你当前使用的2021.3.2版本的Pylance没有自动创建stubPath目录的兜底逻辑,每次启动VS Code加载关联的工作区配置时,都会逐校验stubPath配置的路径有效性,发现目录不存在就直接输出错误日志,不会阻断核心功能运行。
对应修复操作
按照操作效率从高到低排列两种处理方案,可根据自身需求选择:
- 无需自定义类型存根的快速处理方案
- 按下
Ctrl+,快捷键调出VS Code设置面板,搜索python.analysis.stubPath定位到对应配置项 - 分别检查「用户」全局配置和每个报错项目对应的「工作区」配置中的stubPath值,把所有非空的配置内容全部清空
- 留空配置后Pylance会自动使用插件内置的默认存根目录,不会再校验本地零散项目的自定义路径,重启VS Code后报错就会消失
- 按下
- 需要保留自定义类型存根功能的处理方案
- 直接按照报错日志中给出的四个路径,手动在本地文件系统创建对应的
typings空目录 - 创建完成后重启VS Code,Pylance的路径校验就会正常通过,后续可以把自己编写的自定义类型.pyi文件放到对应项目的typings目录下使用
- 直接按照报错日志中给出的四个路径,手动在本地文件系统创建对应的
- 补充排查点:如果修改完设置后仍然弹出相同报错,直接打开每个项目根目录下的
.vscode/settings.json文件,把里面手动写死的python.analysis.stubPath字段删除即可,避免工作区配置覆盖全局设置。
内容的提问来源于stack exchange,提问作者Orloff34
相关产品推荐
相关产品推荐

