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

运行pytest时提示找不到core模块,该如何解决?

问题原因及解决方案

核心原因

你遇到的ModuleNotFoundError是因为模块导入路径错误:

  • app/main.py中使用from core.config import settings是尝试从Python全局模块路径查找core,但core是app包下的子模块,并非全局模块,所以找不到。
  • 当pytest加载app.main时,Python会按照sys.path中的路径查找模块,而core不在全局路径里,仅属于app包的内部模块。

解决方法

方法1:使用相对导入(推荐)

修改app/main.py中的导入语句,改为相对当前包的导入:

# 原代码
from core.config import settings

# 修改后
from .core.config import settings

这种方式明确指向当前app包下的core子模块,符合Python包的导入规范。

方法2:使用带包前缀的绝对导入

如果偏好绝对导入风格,修改导入语句为基于app包的完整路径:

# 原代码
from core.config import settings

# 修改后
from app.core.config import settings

这样不管从哪个位置导入app.main,都能通过全局路径定位到core模块(默认运行pytest时项目根目录会被加入Python的sys.path)。

方法3:手动添加项目根目录到sys.path(临时应急用,不推荐长期使用)

如果不想修改代码,可以在tests/conftest.py开头添加代码,将项目根目录加入Python的模块查找路径:

import sys
from pathlib import Path

# 获取项目根目录(tests目录的父目录)
project_root = Path(__file__).parent.parent
sys.path.append(str(project_root))

验证修改

修改完成后,重新运行pytest:

pytest tests/

此时应该能正常加载core模块,测试用例可以正常执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 18:05:28