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

运行pytest出现相对导入路径错误:找不到名为'app'的模块问题咨询

pytest模块导入错误解决方案

错误的核心原因是Python默认没有将项目下的src目录纳入模块搜索路径,同时导入语句的前缀写法和包结构不匹配,可按以下任意一种方案解决:

  • 方案1:新增conftest.py自动配置搜索路径
    在project根目录下新建conftest.py文件,写入如下代码:
    import sys
    from pathlib import Path
    sys.path.insert(0, str(Path(__file__).parent / "src"))
    
    完成后统一调整导入语句:
    1. 测试文件中的导入去掉src前缀,修正为:from app.functions.functionA import funcA(注意原写法漏掉了functions的后缀s)
    2. functionA.py中的导入from app.db.dbA import client保持不变
      配置完成后直接在project目录执行python -m pytest即可正常运行。
  • 方案2:通过pyproject.toml配置全局规则
    如果项目用pyproject.toml管理配置,添加如下配置项:
    [tool.pytest.ini_options]
    pythonpath = ["src"]
    
    [project]
    packages = ["app"]
    package_dir = {"": "src"}
    
    导入语句调整规则和方案1一致,无需额外配置即可运行pytest。
  • 方案3:临时指定PYTHONPATH运行
    不需要修改配置的场景,可在运行pytest时临时指定搜索路径:
    • Linux/macOS终端:
      PYTHONPATH=./src python -m pytest
      
    • Windows cmd:
      set PYTHONPATH=./src && python -m pytest
      
    • Windows PowerShell:
      $env:PYTHONPATH="./src"; python -m pytest
      

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 11:27:04