Repolode
jendrikseipp

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. 1

    从 PyPI 安装 Vulture

    pip install vulture
  2. 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 数据每日更新。

相关项目