You need to enable JavaScript to run this app. 为什么pre-commit运行mypy检测Django REST Framework项目时报错?
优惠活动
大模型
产品
解决方案
定价
更多

为什么pre-commit运行mypy检测Django REST Framework项目时报错?

问题根因

pre-commit的每个钩子运行时都会使用独立的隔离虚拟环境,和你本地的全局环境、项目虚拟环境完全隔绝,你本地安装的依赖不会被pre-commit的钩子读取。
你配置的mypy钩子的additional_dependencies字段仅添加了djangorestframework-stubs、django-stubs这类类型桩库,没有添加实际运行需要的djangorestframework、django依赖,导致mypy的django插件加载项目配置、初始化Django环境时,找不到rest_framework包触发报错。

修复方法

  1. 修改.pre-commit-config.yaml中mypy钩子的additional_dependencies配置,补充实际依赖,建议指定和你项目一致的版本号避免兼容问题:
- repo: https://github.com/pre-commit/mirrors-mypy
    rev: 'v0.910'
    hooks:
      - id: mypy
        args: [--no-strict-optional, --ignore-missing-imports]
        exclude: "[a-zA-Z]*/[a-zA-Z]*/(migrations)/(.)*"
        additional_dependencies: [
            'tokenize-rt',
            'djangorestframework-stubs',
            'django-stubs',
            'django',
            'djangorestframework'
        ]
  1. 清理pre-commit的旧缓存,重新执行检查:
# 清理已缓存的钩子环境
pre-commit clean
# 重新运行全量检查
pre-commit run --all-files

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 22:57:01