📦 LSP Python — Python 代码质量检查与 LSP 集成

v1.1.0

使用 pylsp 实现 Python 代码质量检查和 LSP 集成,提供代码诊断、自动补全、悬停提示和风格分析。适用于检查 Python 错误/警告、获取代码补全、查看函数签名、分析代码质量和修复风格问题。

0· 1.3k·6 当前·6 累计
genify 头像by @genify·MIT-0
下载技能包
License
MIT-0
最后更新
2026/4/10
0
安全扫描
VirusTotal
可疑
查看报告
OpenClaw
安全
high confidence
该技能实现了基于 pylsp 的本地 Python LSP 客户端和批量检查器,其代码、运行指令和请求资源与该目的相符,不请求无关的凭据或远程端点。
评估建议
该技能如所述运行本地 pylsp 基的 LSP 客户端和 linters/formatters。安装/运行前:1) 确保安装了文档中依赖项(python-lsp-server/pylsp、autoflake、black 等),因为脚本调用这些 CLI,但注册元数据不强制执行它们。2) 注意 --auto-fix 将修改文件(SKILL.md 建议先备份)。在副本上运行或启用 VCS 备份以避免意外更改。3) 工具启动本地 pylsp 进程并执行子进程 — 在信任环境中审查和运行,尤其是运行在不可信任代码上。否则,没有请求凭据或网络数据外泄,包中没有其他内容与其声明的目的相矛盾。...
详细分析 ▾
用途与能力
名称/描述(pylsp LSP + 代码质量)与包含的脚本和参考相符。代码合法地生成了本地 pylsp 进程并调用了格式化工具/linters(autoflake、black)。一个小的不一致:注册元数据列出了没有所需的二进制文件,但脚本调用了外部 CLI(pylsp、autoflake、black)。这些二进制文件在 SKILL.md 中作为依赖项进行了文档记录,因此这是一条信息性消息,而不是恶意的。
指令范围
运行时指令和脚本保持在声明的目的范围内:读取 Python 文件,调用本地 pylsp 服务器,通过标准工具格式化/自动修复,并写入本地 Markdown 报告。没有指令读取无关的系统文件,传输外部数据或访问秘密。
安装机制
这是一个仅有指令的技能,没有安装规格;脚本通过子进程运行本地工具。提供的文件中没有下载或存档提取。
凭证需求
该技能不请求环境变量或凭据。它在文档中引用了可选配置(例如 MYPY_CACHE_DIR),但不需要秘密或无关的服务令牌。
持久化与权限
always 为 false 且该技能不修改其他技能或全局代理设置。它写入报告文件,并可能在使用 --auto-fix 时修改项目文件(autoflake/black 就地),这是一种自动修复功能的预期行为。
安全有层次,运行前请审查代码。

License

MIT-0

可自由使用、修改和再分发,无需署名。

运行时依赖

无特殊依赖

版本

latestv1.1.02026/3/1

添加了批量检查脚本 (check_python.py),支持自动修复和报告生成

可疑

安装命令

点击复制
官方npx clawhub@latest install lsp-python
镜像加速npx clawhub@latest install lsp-python --registry https://cn.longxiaskill.com

技能文档

使用 Python Language Server Protocol (LSP) 进行代码质量检查和智能分析。

快速开始

1. 检查代码问题

# 单个文件
python3 scripts/lsp-service.py check <文件路径>
# 批量检查 (推荐)
python3 scripts/check_python.py <文件或目录>
# 批量检查并自动修复
python3 scripts/check_python.py --auto-fix <文件或目录>

示例:

python3 scripts/lsp-service.py check my_script.py
python3 scripts/check_python.py src/
python3 scripts/check_python.py --auto-fix src/

2. 获取代码补全

python3 scripts/lsp-service.py complete <文件> <行号> <字符位置>

3. 查看符号信息

python3 scripts/lsp-service.py info <文件> <行号> <字符位置>

依赖

  • Python 3.x
  • pylsp: pip install python-lsp-server
  • 可选插件:
- pip install python-lsp-server[all] - 完整插件集 - pip install pylsp-mypy - 类型检查 - pip install pylsp-black - black 格式化

核心功能

代码诊断 (check)

检查 Python 文件中的错误和警告:

  • pyflakes - 代码错误检测 (未使用导入、未定义变量等)
  • pycodestyle - PEP8 风格检查 (格式、行长、空白等)

输出示例:

⚠️ 第 3 行 [pyflakes]: 'os' imported but unused
⚠️ 第 6 行 [pycodestyle]: E302 expected 2 blank lines, found 1
✅ 没有发现问题

代码补全 (complete)

获取指定位置的代码补全建议:

python3 scripts/lsp-service.py complete script.py 5 10

输出:

补全建议:
• json (模块)
• jsonpatch (模块)
• requests (模块)

悬停提示 (info)

查看函数签名、文档字符串等信息:

python3 scripts/lsp-service.py info script.py 10 5

跳转定义 (goto)

查找符号的定义位置:

python3 scripts/lsp-service.py goto script.py 15 10

自动修复代码问题

清理未使用的导入

pip install autoflake
autoflake --remove-all-unused-imports --in-place --recursive .

格式化代码

pip install black
black .

完整修复流程

# 1. 备份
cp -r project/ project.backup
# 2. 清理导入
autoflake --remove-all-unused-imports --in-place --recursive project/
# 3. 格式化
black project/
# 4. 验证
python3 scripts/lsp-service.py check project/main.py

诊断严重性级别

级别代码含义
1Error (错误)
⚠️2Warning (警告)
ℹ️3Information (信息)
💡4Hint (提示)

常见问题代码

代码含义修复方法
E402导入不在文件顶部移动导入到文件开头
E501行太长 (>79 字符)拆分长行或使用括号
W293空行包含空白字符删除行尾空格
E302缺少空行函数/类定义前加 2 个空行
E712布尔比较风格if x is Trueif x

在 OpenClaw 中使用

exec: python3 /path/to/lsp-python/scripts/lsp-service.py check 

批量检查项目

# 检查所有 Python 文件
find . -name ".py" -exec python3 scripts/lsp-service.py check {} \;
# 仅显示有问题的文件
for f in $(find . -name ".py"); do
  result=$(python3 scripts/lsp-service.py check "$f" 2>&1)
  if ! echo "$result" | grep -q "✅ 没有发现问题"; then
    echo "=== $f ==="
    echo "$result"
  fi
done

参考资料

  • LSP 协议详解: 见 references/lsp-protocol.md
  • pylsp 配置: 见 references/pylsp-config.md
  • 代码风格指南: 见 references/pep8-guide.md

故障排除

pylsp 无法启动

# 检查安装
which pylsp
pylsp --version
# 重新安装
pip install --upgrade python-lsp-server

检查超时

增加脚本中的 LSP_TIMEOUT 值 (默认 10 秒)。

中文字符问题

确保文件使用 UTF-8 编码,脚本已设置 ensure_ascii=False

数据来源ClawHub ↗ · 中文优化:龙虾技能库