python-lsp-server:Python 语言的 LSP 实现

python-lsp-server 是一个基于 Language Server Protocol 构建的 Python 语言服务器,目前获得 2,558 个 Star。

正文顶部截图

README区域截图

这个项目为 Python 开发者提供语言服务。它要求 Python 3.9 及以上版本,核心功能依托 Jedi 库实现,覆盖代码补全、定义跳转、悬停提示、引用查找、签名帮助和符号浏览。

安装通过 pip 执行:

pip install python-lsp-server

安装后系统中新增 pylsp 命令。Anaconda 用户可用 conda 安装:

conda install -c conda-forge python-lsp-server

主流 Linux 发行版在软件源中收录了该工具。Debian 系执行 apt-get install python3-pylsp,Fedora 执行 dnf install python3-lsp-server,Arch 执行 pacman -S python-lsp-server

该项目的架构是模块化的。基础安装仅含核心能力,其他功能通过可选依赖接入。已集成的可选 provider 包括:

Rope 用于代码补全和重命名
Pyflakes 检测各类错误
McCabe 检查圈复杂度
pycodestyle 检查代码风格
pydocstyle 检查文档字符串风格(默认关闭)
autopep8 和 YAPF 用于代码格式化
flake8 用于错误检查(默认关闭)
pylint 用于代码检查(默认关闭)

需要全部可选功能时,执行:

pip install "python-lsp-server[all]"

第三方插件也在扩展。pylsp-mypy 提供静态类型检查,python-lsp-isort 自动排序导入,python-lsp-black 提供代码格式化,pylsp-rope 扩展重构能力,python-lsp-ruff 提供快速代码检查。

编辑器对接方面,python-lsp-server 支持 Auto Completion、Autoimport、Code Linting、Code actions、Signature Help、Go to definition、Hover、Find References、Document Symbols、Document Formatting、Code folding 和 Multiple workspaces。

配置体系比较灵活。各工具配置可从客户端传入,也可从配置文件读取。pycodestyle 配置在 ~/.config/pycodestylesetup.cfgtox.inipycodestyle.cfg 中查找;flake8 配置在 .flake8setup.cfgtox.ini 中。配置优先级依次是用户目录配置、客户端传入配置、工作区配置。

该项目还支持 WebSocket 通信,启动命令为:

pylsp --ws --port [port]

需要额外安装 websockets 依赖。

python-lsp-server 采用模块化架构,能适应多种开发场景。

装 websockets 依赖。

python-lsp-server 采用模块化架构,能适应多种开发场景。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐