You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何pre-commit run --all-files -v未检测Python文件?

问题

我的.pre-commit-config.yaml配置如下:

repos:
-   repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v3.2.0
    hooks:
    -   id: fix-encoding-pragma
    -   id: check-ast

当前目录结构:

$ tree
.
├── LICENSE
├── README.md
└── main.py

执行pre-commit run --all-files -v后输出:

$ pre-commit run --all-files -v
Fix python encoding pragma...........................(no files to check)Skipped
- hook id: fix-encoding-pragma
Check python ast.....................................(no files to check)Skipped
- hook id: check-ast

首次使用pre-commit,不清楚为什么main.py没被检测到。

解决方法
  • 先初始化钩子环境
    首次使用需先拉取配置中指定的钩子,执行命令:

    pre-commit install-hooks
    

    完成后重新运行检测命令。

  • 明确指定钩子的匹配文件
    部分旧版本钩子的默认匹配规则可能未覆盖你的main.py,可在配置中为钩子添加files字段指定Python文件:

    repos:
    -   repo: https://github.com/pre-commit/pre-commit-hooks
        rev: v3.2.0
        hooks:
        -   id: fix-encoding-pragma
            files: \.py$
        -   id: check-ast
            files: \.py$
    

    保存配置后重新执行检测即可。

  • 升级钩子版本
    你使用的pre-commit-hooks v3.2.0版本较老旧,可能和当前pre-commit主程序存在兼容性问题,建议升级到稳定新版本(比如v4.6.0),修改配置中的rev值后,重新执行pre-commit install-hooks和检测命令。

内容的提问来源于stack exchange,提问作者WebOrCode

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 09:52:14