Python Language Server:编辑器的 Python 智能补全引擎
Python Language Server:编辑器的 Python 智能补全引擎
Palantir 开源的 Python Language Server,收获了 2,695 个 Star:


Python Language Server 是 Palantir 开源的一款 Python 语言服务器,实现了 Language Server Protocol 协议。它支持 Python 2.7 和 Python 3.5 及以上版本,可以为各类编辑器提供代码补全、跳转定义、悬停提示等功能。
这个项目基于 Jedi 库提供核心能力。Jedi 是一个静态分析库,能够解析 Python 代码并提取类型信息、函数签名和文档字符串。基于 Jedi,Python Language Server 实现了代码补全、定义跳转、悬停信息、引用查找、签名帮助和文档符号导航六项核心功能。
安装基础版本很简单,一条 pip 命令即可:
pip install python-language-server
除了 Jedi 提供的核心能力,Python Language Server 还支持通过可选依赖扩展功能。这些可选组件涵盖代码格式化和代码检查:
- Rope 提供代码补全和重命名功能
- Pyflakes 检测各类运行时错误
- McCabe 检查代码圈复杂度
- pycodestyle 检查代码风格合规性
- pydocstyle 检查文档字符串风格(默认关闭)
- autopep8 和 YAPF 用于代码格式化,其中 YAPF 优先级更高
要安装全部可选功能,使用以下命令:
pip install 'python-language-server[all]'
配置系统支持从多个来源加载设置。目前支持 pycodestyle 和 flake8 的配置文件,分别在 ~/.config 目录、setup.cfg、tox.ini 和各自的配置文件中查找。默认使用 pycodestyle 作为配置源,可以通过修改 pyls.configurationSources 切换为 flake8。
配置的优先级顺序为:用户主目录配置优先于语言客户端传入的配置,工作区本地配置则覆盖前两者。这意味着项目级的配置文件会覆盖全局设置。
社区还开发了多个第三方插件来扩展能力:
- pyls-mypy 为 Python 3 提供静态类型检查
- pyls-isort 自动整理 import 语句顺序
- pyls-black 使用 Black 格式化代码
在实际使用中,Python Language Server 提供了接近商业 IDE 的体验。自动补全能根据当前上下文提示可用的方法和属性,减少记忆负担。代码检查集成 pycodestyle 和 pyflakes,在编写代码时实时标记潜在问题。签名帮助在调用函数时显示参数列表和类型注解。定义跳转支持从调用处直接跳转到函数或类的声明位置。悬停提示展示变量、函数或类的文档说明和类型信息。查找引用列出代码中所有使用某标识符的位置,便于重构。文档符号导航列出当前文件中的类、函数和变量,支持快速跳转。文档格式化支持一键整理代码格式,保持代码风格统一。
这个项目采用 MIT 协议开源,可以在 VS Code、Vim、Emacs 等支持 LSP 协议的编辑器中使用,为 Python 开发提供完整的语言支持。
、Emacs 等支持 LSP 协议的编辑器中使用,为 Python 开发提供完整的语言支持。
更多推荐


所有评论(0)