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

Django搭配Mypy使用时无法读取mypy.ini配置选项的问题求解

核心逻辑说明

mypy.api.run的入参列表完全等价于命令行执行mypy时传入的所有参数,你之前传入[settings.BASE_DIR]本质是给mypy指定了要执行类型检查的扫描路径,这是mypy运行的必填参数,所以不传或者传空列表都会运行失败。

配置不生效原因

mypy默认会从执行命令时的当前工作目录往上查找配置文件,你把逻辑放在apps.py的ready函数中运行时,Django启动的工作目录不一定是项目根目录,所以找不到你放置的mypy.ini,配置自然不生效。

解决方案

你需要在参数列表中显式指定配置文件路径,同时保留扫描路径参数,示例代码如下:

from pathlib import Path
from django.conf import settings
import mypy.api

# 拼接参数列表:先指定配置文件,再指定扫描路径
mypy_args = [
    "--config-file",
    str(Path(settings.BASE_DIR) / "mypy.ini"),
    str(settings.BASE_DIR)
]
results = mypy.api.run(mypy_args)

如果你需要额外传入其他配置参数,直接按命令行参数的格式追加到mypy_args列表即可,额外传入的参数优先级会高于mypy.ini中的配置,和命令行执行逻辑完全一致。

内容的提问来源于stack exchange,提问作者miller the gorilla

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 18:57:01