Pyright LSP
语言服务器:Pyright(微软出品,VS Code 的 Pylance 扩展的开源核心)
支持的扩展名:.py、.pyi
安装
三种方式,选一个:
# npm(最简单,不依赖 Python 环境)
npm install -g pyright
# pip
pip install pyright
# pipx(推荐用于 CLI 工具,避免污染全局 Python 环境)
pipx install pyrightnpm 方式装出来的是一个 Node.js 包装器,它会自动下载对应平台的 Pyright 二进制。对于只是想给 Claude Code 用、不想折腾 Python 环境的人来说,这是最省事的方案。
和 mypy 的区别
Python 社区有两大类型检查工具:mypy 和 Pyright。这个插件选的是 Pyright,理由很实际——Pyright 是 LSP 原生的,启动快,增量分析性能好。mypy 主要是命令行批量检查工具,虽然也有 mypy daemon,但 LSP 支持不如 Pyright 成熟。
不过 Pyright 和 mypy 对类型注解的解读偶尔有出入。如果你的项目 CI 里跑的是 mypy,Pyright 可能报出 mypy 不报的问题,或者反过来。这不是 bug,是两个工具的类型推断策略不同。
项目配置
Pyright 读 pyrightconfig.json 或 pyproject.toml 里的 [tool.pyright] 段。关键配置项:
pythonVersion:目标 Python 版本。如果不设,Pyright 会自己猜,但猜错的话某些语法特性的检查结果就不对。pythonPlatform:目标平台(Linux/Darwin/Windows)。跨平台项目需要注意。venvPath和venv:虚拟环境路径。Pyright 需要知道你的虚拟环境在哪,才能正确解析第三方库的类型。typeCheckingMode:off、basic、standard、strict。默认是standard,strict模式会报很多你可能不想处理的问题。
没有配置文件的话,Pyright 会尝试自动检测虚拟环境(找 .venv、venv 目录),但不一定猜得对。
特有功能
- 类型存根(Type Stubs)推断。对于没有类型注解的第三方库,Pyright 内置了一套 typeshed 存根,覆盖了大部分标准库和常见第三方库。
- 对
py.typed标记的支持。能正确识别声明了内联类型的包。 - 严格模式下的完整类型检查。开了 strict 模式,即使代码没写类型注解,Pyright 也会尝试推断并报告不一致。
典型场景
Python 项目里 LSP 最有用的场景:你有一个没写类型注解的老项目,想逐步加上 type hints。让 Claude 一个模块一个模块地加注解,加完跑 Pyright 诊断,确保新加的注解和实际使用方式一致。
另一个场景:重构函数签名。Python 的动态类型让重构变得危险——运行时才知道哪里炸了。有 Pyright 的话,至少能在改完后立刻发现类型层面的不兼容。
注意事项
- 虚拟环境配置很关键。Pyright 找不到你的 venv,就找不到第三方库的类型定义,满屏都是
import could not be resolved的错误。 .pyi存根文件和实际实现不一致时,Pyright 会以存根为准。如果你遇到明明运行正常但 Pyright 报错的情况,查一下是不是存根过期了。- Django、SQLAlchemy 这类大量用元编程的库,Pyright 的分析能力有限。社区有专门的 Pyright 插件(比如 django-stubs)来改善,但效果仍然不如静态类型语言的分析那么精确。
本章来自《Claude 插件官方指南》开源版 · 作者「递归客」
在线阅读完整书系:inferloop.dev
源码仓库:github.com/diguike/book-claude-plugins
本书资源
- 源码仓库 · github.com/diguike/book-claude-plugins
- 在线阅读 · inferloop.dev/claude-plugins
- 所有书目 · inferloop.dev
继续阅读 · 同作者其他书
- 《Transformer 工程实战》从注意力机制到生产部署
- 《自己动手写 AI Agent》从 Claude Code 开源架构到你的第一个编程助手
- 《AI 时代的 CLI 工具开发实战》用 TypeScript 构建现代 CLI 工具
- 《LLM Infra 工程实战》从入门到实践
- 《Hermes Agent 实战》构建会成长的个人 AI Agent
- 《OpenClaw 源码解析》现代 Agent 系统的架构设计与工程实践
- 《Agent Memory 工程实战》从 claude-mem 源码到企业级记忆平台
- 《AI Token 中转站实战》从 0 搭建企业级 LLM 网关
- 《LangChain.js Agent 开发权威指南》从 1.x 抽象到生产级 Agent
- 《百万级 AI Agent 平台架构》智能客服 SaaS 实战
- 《AI Agent 评测工程实战》从 0 用 TypeScript 构建你的评测平台
- 《Agent Harness 评测工程》用评测建设并守护一个 agent harness
- 《源码精读》每章一个开源仓库 · 从架构到品味
- 《Claude Code Skill 指南》