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

Pytest无法正确导入模块:ModuleNotFoundError问题求助

Pytest模块导入报错解决方案

核心原因

不是类导入的问题,本质是Python解释器未将app目录纳入模块搜索路径,导致无法识别src作为顶层模块。

解决方法

  • 切换到正确目录运行pytest
    打开终端,进入app目录后执行测试命令:

    cd /你的app目录路径
    pytest tests/unit/test_file1.py
    

    此操作会自动将app目录加入Python模块搜索路径,src下的子模块就能被正常识别。

  • 通过环境变量指定路径
    无需切换目录,临时将app目录加入PYTHONPATH后运行测试:

    PYTHONPATH=/你的app目录路径 pytest /你的app目录路径/tests/unit/test_file1.py
    

    也可先设置环境变量,再执行测试:

    export PYTHONPATH=/你的app目录路径
    pytest tests/unit/test_file1.py
    
  • 修改conftest.py自动配置路径
    在app/conftest.py中添加以下代码,自动将app目录加入搜索路径:

    import sys
    from pathlib import Path
    
    app_dir = Path(__file__).parent
    sys.path.append(str(app_dir))
    

    配置后无论在哪个目录运行pytest,都能正确识别模块。

  • 验证搜索路径
    在test_file1.py开头添加代码,打印当前Python模块搜索路径,确认app目录是否在其中:

    import sys
    print(sys.path)
    

    若app目录不在输出列表,说明路径配置未生效。

补充说明

你提到的另一个函数测试文件运行正常,和函数/类的导入形式无关,大概率是该文件的导入写法适配了当时的运行路径(比如用了相对导入)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 11:17:19