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

Mypy检测项目src子目录Poetry包时出现类型检查错误求助

解决Mypy对本地src目录包的导入错误

问题原因

Mypy默认优先查找已安装到site-packages的包(Poetry安装项目后会把src里的api等包链接/安装到site-packages),所以它把api当成了第三方依赖包,而非本地项目源码,因此会要求提供类型存根或py.typed标记,而不会去解析你本地src目录里的源码。

解决方案

1. 配置Mypy识别src为源码根目录

在你的pyproject.toml中添加Mypy的配置,指定pythonpath包含src目录,让Mypy优先扫描本地源码而非已安装的包:

[tool.mypy]
pythonpath = ["src"]

或者如果使用独立的mypy.ini文件,添加:

[mypy]
python_path = src

2. 确保包结构完整

每个Python包目录下(src/api、src/another_api)都需要有__init__.py文件(可以是空文件),这样Mypy才能正确识别它们为可导入的Python包。

3. 可选:添加py.typed标记(若需发布包)

如果后续需要将包发布到PyPI,在每个包的根目录(比如src/api/)创建一个空的py.typed文件,明确告知Mypy该包包含类型信息。不过仅本地开发时,前两步已经足够解决问题。

验证操作:运行mypy src/,此时Mypy会正确解析src/api/main.py中导入的api.constants模块,进行类型检查而非跳过。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 20:54:57