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

Mypy报错:源文件在不同模块名下重复被找到的问题求助

Mypy报错:源文件在不同模块名下重复被找到的问题求助

看起来你碰到了Mypy的模块命名冲突坑了!虽然已经加了__init__.py,但这个报错说明同一个源文件被Mypy识别成了两个不同的模块——example_scripts.rewrite.src.main和testing.example_scripts.rewrite.src.main,我给你几个实用的排查和解决方向:

  • 先核对项目目录结构
    先看看你的项目里是不是同时存在example_scripts/rewrite/src/main.py和testing/example_scripts/rewrite/src/main.py这两个文件?如果是不小心复制了源码目录到测试文件夹下,直接删掉重复的文件就能解决问题。如果是测试目录故意沿用了源码的结构,那得调整导入方式或者Mypy配置了。

  • 调整Mypy的配置文件
    打开你的mypy.ini或者pyproject.toml,检查include和exclude规则:

    • 如果测试代码不需要Mypy全局检查,可以把testing目录排除在外,比如在pyproject.toml里这么写:
      [tool.mypy]
      include = ["example_scripts/**/*.py"]
      exclude = ["testing/**/*.py"]
      
    • 如果测试代码必须被检查,那可以明确指定Python模块搜索路径,避免Mypy从多个路径识别同一模块:
      [tool.mypy]
      pythonpath = ["."]
      
  • 检查环境的模块搜索路径
    有时候测试框架或者你的运行环境会把项目根目录和testing目录都加到sys.path里,导致Mypy从两个路径找到同一个模块。你可以在代码里临时打印sys.path看看有没有重复的路径,或者在Mypy配置里锁定pythonpath,避免自动添加多余路径。

  • 修改测试代码的导入方式
    如果测试需要引用源码里的main模块,别从testing.example_scripts导入,直接从项目根目录导入example_scripts.rewrite.src.main,这样就能避开命名冲突了。

先从检查目录结构入手吧,大概率是路径或者配置的小问题,应该能快速解决这个报错~

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.07 06:53:09