autoflake:Python 代码里没用的 import,让它自己清掉

autoflake:Python 代码里没用的 import,让它自己清掉

autoflake 在 GitHub 上拿了 957 Star。

这个小工具只做一件事:扫描 Python 代码,把没用的 import 和变量自动清掉。它底层用的是 pyflakes 来做静态分析。

1、这玩意儿是干嘛的

Python 项目写久了,文件顶部往往堆了一堆 import。有些模块引了但根本没用到,变量定义了也没下文。这些代码不会报错,运行也没问题,但读起来费劲,打包时还多了不必要的依赖。

autoflake 就是来处理这个问题的。跑一遍,未使用的 import 直接消失,没用的变量也能一并清理。默认还会把多余的 pass 语句去掉。

默认策略比较保守:只删标准库的未使用导入。毕竟第三方模块可能带有副作用,贸然删掉有风险。如果你确定安全,可以加参数让它处理所有 import。

2、为什么要用它

手动清理 import 很烦。文件少还能逐行检查,项目大了根本顾不过来。很多团队靠代码审查时人工盯,效率低还容易漏。

autoflake 把这件事自动化了。集成到 CI 或 pre-commit hook 里,每次提交前自动扫一遍,未使用的代码进不了仓库。它还支持配置文件,在 pyproject.toml 或 setup.cfg 里写好规则,团队里所有人跑出来的结果一致。

对于遗留项目,autoflake 也够用。递归跑一遍整个目录,陈旧代码里的无用 import 一次清理完。

3、怎么用

安装:

复制代码
pip install autoflake

单文件处理:

css 复制代码
autoflake --in-place example.py

加上未使用变量清理:

css 复制代码
autoflake --in-place --remove-unused-variables example.py

只检查不修改,适合 CI 场景:

css 复制代码
autoflake --check example.py

递归处理目录:

css 复制代码
autoflake --recursive --in-place .

清理所有未使用导入(不限于标准库):

arduino 复制代码
autoflake --remove-all-unused-imports example.py

配置文件示例,写入 pyproject.toml:

toml 复制代码
[tool.autoflake]
check = true
imports = ["django", "requests"]

某些 import 虽然没被直接引用,但确实有副作用。比如 Flask 里导入模块来注册路由,这种情况在行尾加 # noqa 即可跳过。

pre-commit 集成时,在 .pre-commit-config.yaml 里加入 autoflake hook,参数带上 --remove-all-unused-imports--in-place 就行。

4、适合哪些人用

  • 维护中大型 Python 项目、import 逐渐失控的开发者
  • 想在 CI 流程里加一道自动清理关卡的技术团队
  • 用 pre-commit 管理代码规范、希望减少人工审查负担的工程组
相关推荐
Natural3 小时前
混合检索 + RRF + Rerank 实战评测:三条路线在 47 个真实问题上的取舍
github
一点一木5 小时前
憋了7周没动静,OpenClaw 2.0带着16000个PR杀回来了
人工智能·github
一点一木8 小时前
🚀 2026 年 8 月 GitHub 十大热门项目排行榜 🔥
人工智能·github
怕浪猫20 小时前
FDE 最大的浪费不是写出有 bug 的代码,而是漂亮地解决了一个错误的问题
面试·架构·github
黄敬峰1 天前
Next.js 全栈实战:数据清洗、ORM 设计与 AI Prompt 工程最佳实践
面试·github
峰向AI1 天前
AI reads books:用 AI 逐页「啃」PDF 的知识提取器,一个脚本搞定一切
github
Experience-摆渡1 天前
GitHub 47万星免费公共API清单深度调研:收录规模、维护现状与实测
github
逛逛GitHub1 天前
GitHub 上 2.5 万星星的开源 Skill 让 AI 画出漂亮图表。
github
Cosolar1 天前
一文弄懂 Agent Harness 与 Agent Runtime 的区别
java·后端·github
YH55269841 天前
如何减少大模型的token消耗?日常使用,可以通过什么方式减少大模型 token 的消耗
gpt·chatgpt·github