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

pytest导入模式与conftest.py配置问题:项目模块导入失败

解决pytest中ModuleNotFoundError找不到项目模块的问题

问题根源

你的test_helpers/utils.py在导入项目模块some.package.of.ours时,Python的sys.path未包含项目根目录,导致无法定位该模块。即便设置了--import-mode=importlib,pytest也没有自动将项目根目录加入模块搜索路径。

解决方案

方案1:在pyproject.toml中配置Python路径

直接在pyproject.toml的pytest配置区块添加pythonpath,让pytest启动时自动把项目根目录加入搜索路径:

[tool.pytest.ini_options]
import_mode = "importlib"
pythonpath = ["."]

.代表执行poetry run pytest时的当前目录(即项目根目录),配置后utils.py里的常规导入就能正常找到项目模块。

方案2:在conftest.py中手动添加项目根目录到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))

这段代码会自动识别项目根目录并添加到sys.path,确保utils.py能导入项目模块。

方案3:以可编辑模式安装项目包

利用poetry将项目包以可编辑模式安装到虚拟环境,让Python全局可识别项目模块:

poetry add --editable .

执行后poetry会将项目包链接到虚拟环境,任何位置的导入都能找到some.package.of.ours。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 09:37:05