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

模块已被识别仍报ModuleNotFoundError的解决求助

解决Python模块导入的ModuleNotFoundError问题

问题场景

文件夹结构:

|-fastapi
   |-app
     |-calc.py
   |-tests
     |-mytest.py

测试代码(mytest.py):

from app import calc

现象:编辑器能识别app和calc模块,但运行时抛出ModuleNotFoundError。

核心原因

编辑器会扫描整个项目目录识别模块结构,但Python运行时只会从当前工作目录和系统预设的模块路径里查找模块。直接运行mytest.py时,Python的工作目录是tests或你执行命令的目录,找不到上层的app模块。

解决方案

方法1:手动添加项目根目录到Python路径

  • 终端临时设置:
    进入fastapi目录,根据系统执行命令:
    • Windows:
      set PYTHONPATH=%cd%
      python tests/mytest.py
      
    • Linux/macOS:
      export PYTHONPATH=$(pwd)
      python tests/mytest.py
      
  • 代码内动态添加:
    在mytest.py最开头添加以下代码,把fastapi目录加入模块搜索路径:
    import sys
    from pathlib import Path
    # 获取fastapi目录的绝对路径(当前脚本的父级的父级)
    sys.path.append(str(Path(__file__).parent.parent))
    
    from app import calc
    

方法2:给app目录添加__init__.py

在app目录下创建一个空的__init__.py文件,让Python明确识别这是一个可导入的模块包(Python 3.3+支持无__init__.py的命名空间包,但添加后兼容性更好)。

方法3:用测试框架运行(如果是测试代码)

如果这是测试脚本,推荐用pytest等测试框架:
进入fastapi目录,执行:

pytest tests/mytest.py

pytest会自动将当前目录(fastapi)加入模块搜索路径,无需额外配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 05:40:25