如何让Mypy识别已加类型注解但无py.typed标记的外部包?
让Mypy识别无py.typed标记但带类型注解的外部包
你可以通过修改Mypy的配置文件,直接指定目标包需要被当作带类型的包处理,无需生成存根或关闭类型检查,具体操作如下:
方法:配置Mypy针对目标包的检查规则
找到你的Mypy配置文件(通常是pyproject.toml或mypy.ini),添加针对目标包的专属配置块:
如果你用pyproject.toml
[tool.mypy] # 保留原有其他配置 [tool.mypy.你的包名.*] ignore_missing_imports = false follow_imports = silent strict = true
如果你用mypy.ini
[mypy] # 保留原有其他配置 [mypy-你的包名.*] ignore_missing_imports = False follow_imports = silent strict = True
把上面的你的包名替换成实际的外部包名称即可。
配置项说明
ignore_missing_imports = false:告诉Mypy不要忽略这个包的导入,强制进行类型检查follow_imports = silent:避免Mypy因为包缺少py.typed标记而抛出"import of untyped module"的错误strict = true:启用严格类型检查,让Mypy读取并使用包内已有的类型注解
这样配置后,Mypy就会正常识别该包内的类型注解,直到PR合并、官方添加py.typed标记为止。
内容的提问来源于stack exchange,提问作者theberzi
相关产品推荐
相关产品推荐

