Pylint 插件,让静态检查理解 Django 的模型、表单、视图和迁移,减少 Django 代码中的误报。
jendrikseipp/vulture
一款静态分析工具,用于查找 Python 项目中未被使用的函数、类、变量、导入和不可达代码。
- Star
- 4,875
- Fork
- 209
- 未关闭 Issue
- 76
- 最近提交
- 26天前
这是什么?
Vulture 扫描 Python 文件和目录,找出已定义但从未被使用的代码,包括未使用的函数、类、属性、变量、导入以及不可达分支。它基于抽象语法树进行静态分析,不需要运行代码。每个发现都带有 60% 到 100% 的置信度,通过 --min-confidence 参数可以过滤掉不确定的结果,只保留确定的死代码。
由于 Python 的动态特性,Vulture 可能漏报,也可能把隐式调用的代码误报为未使用。为此,它支持用白名单文件模拟代码引用,并可通过通配符忽略指定的名称、装饰器和路径,也能通过 pyproject.toml 进行配置。结果还能按代码行数排序,方便优先处理较大的死代码。
Vulture 可以作为命令行工具使用,也能以 Python 模块方式运行,或通过 API 在程序中调用,还可以接入 pre-commit 钩子。其输出格式与 pyflakes 保持一致。
核心功能
- 01检测未使用的函数、类、方法、属性、变量和导入
- 02发现 return、raise、break、continue 之后的不可达代码
- 03为每个结果分配置信度,并可通过 --min-confidence 过滤
- 04支持白名单文件,屏蔽误报
- 05可通过 pyproject.toml 配置,也可作为 Python API 调用
适用场景
- 清理长期积累了大量死代码的大型 Python 项目
- 同时对库代码和测试代码运行 Vulture,找出未被测试覆盖的代码
- 在 pre-commit 或 CI 中自动执行死代码检查
快速上手
- 1
从 PyPI 安装 Vulture
pip install vulture - 2
对你的 Python 脚本或包目录运行 Vulture
vulture myscript.py mypackage/
使用前须知
- 由于 Python 的动态特性,它可能漏报死代码,也可能把被隐式调用的代码报告为未使用。
- 低于 100% 的置信度值只是非常粗略的估计。
标签
常见问题
- vulture 是什么?
- 一款静态分析工具,用于查找 Python 项目中未被使用的函数、类、变量、导入和不可达代码。 Vulture 扫描 Python 文件和目录,找出已定义但从未被使用的代码,包括未使用的函数、类、属性、变量、导入以及不可达分支。它基于抽象语法树进行静态分析,不需要运行代码。每个发现都带有 60% 到 100% 的置信度,通过 --min-confidence 参数可以过滤掉不确定的结果,只保留确定的死代码。
- vulture 可以免费使用吗?用的什么许可证?
- vulture 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- vulture 还在维护吗?
- 活跃维护中。vulture 最近一次提交是在 2026年10月12日。
- vulture 适合用来做什么?
- 清理长期积累了大量死代码的大型 Python 项目 同时对库代码和测试代码运行 Vulture,找出未被测试覆盖的代码 在 pre-commit 或 CI 中自动执行死代码检查
- vulture 怎么安装和运行?
- 从 PyPI 安装 Vulture: pip install vulture 对你的 Python 脚本或包目录运行 Vulture: vulture myscript.py mypackage/
- 在哪里获取 vulture?
- 源代码和安装说明在 GitHub 上:https://github.com/jendrikseipp/vulture
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
用于检查 Swift 代码风格与编码规范的 linter,内置 200 多条规则,可按项目配置。
自托管的代码质量与安全平台,扫描项目中的缺陷、漏洞和可维护性问题,并可在 CI 流程中设置质量门禁。
基于 PHP_CodeSniffer 的规则集,用于检测代码在不同 PHP 版本间的兼容性问题。
一个 Docker 镜像,打包了多款 PHP 静态分析、测试与代码质量工具,无需在本地安装即可运行。
一款命令行工具,可直接对 Jupyter Notebook 运行 ruff、isort、black、mypy、flake8 等 Python 代码检查与格式化工具。