Sublime Text 4中Pyright严格类型检查模式无法生效如何解决?
Pyright严格类型检查模式不生效原因排查
你观测到的导入缺失报错正常、但无类型注解函数不报错的表现,符合严格模式未实际生效的特征,常见原因如下:
- 配置优先级被覆盖
Pyright的配置优先级规则为:项目根目录下的pyrightconfig.json / pyproject.toml> Sublime Text项目级LSP配置 > Sublime Text全局LSP配置。如果你的工作区根目录存在独立的Pyright配置文件,且内部将typeCheckingMode设为了basic或off,会直接覆盖你在LSP-pyright.sublime-settings中填写的strict配置。 - 配置文件格式或位置错误
检查LSP-pyright.sublime-settings的JSON结构是否合法,"python.analysis.typeCheckingMode": "strict"需要直接放在配置文件最外层的JSON对象中,不能错误嵌套在其他子配置块内。同时确认你修改的是对应生效范围的配置,若仅修改了语法特定配置,可能不会对当前打开的Python文件生效。 - 相关检查规则被显式关闭
strict模式默认会开启reportMissingParameterType规则,用于检测未标注类型的函数参数。如果你在配置中单独将该规则设为none,就算开启了严格模式,也不会对示例中的无类型注解函数抛出错误。 - LSP-pyright版本过旧
旧版本的LSP-pyright内置的Pyright内核版本较低,可能存在严格模式规则适配问题,可以尝试升级LSP-pyright插件到最新版本后重试。
注:
reportMissingImports规则在Pyright默认的basic模式下就已开启,所以就算严格模式未生效,导入不存在的包也会正常抛出报错,和你观测到的现象一致。
内容的提问来源于stack exchange,提问作者marshblocker
相关产品推荐
相关产品推荐

