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

Pytest报ModuleNotFoundError:调整项目结构后导入失效求助

解决Pytest测试文件导入模块的问题

方案1:测试文件里临时添加路径

在每个测试文件(比如testA.py)的最开头加入这段代码,把项目根目录下的src文件夹添加到Python的模块搜索路径中:

import sys
from pathlib import Path

# 获取项目根目录(test文件夹的父目录即为项目根目录)
root_dir = Path(__file__).parent.parent
sys.path.append(str(root_dir / "src"))

之后就能正常导入模块:

from project_name import moduleA

方案2:通过环境变量指定Python路径

运行pytest前,先将src目录加入PYTHONPATH环境变量:

  • Linux/macOS终端:
export PYTHONPATH="$PYTHONPATH:/你的项目绝对路径/src"
pytest
  • Windows命令提示符:
set PYTHONPATH=%PYTHONPATH%;C:\你的项目绝对路径\src
pytest
  • Windows PowerShell:
$env:PYTHONPATH += ";C:\你的项目绝对路径\src"
pytest

设置完成后,测试文件里直接写from project_name import moduleA即可。

方案3:可编辑安装项目

在项目根目录执行以下命令,将项目以可编辑模式安装到当前Python环境:

pip install -e .

需要先在项目根目录创建setup.py文件,参考内容如下:

from setuptools import setup, find_packages

setup(
    name="project_name",
    version="0.1",
    packages=find_packages(where="src"),
    package_dir={"": "src"},
)

安装完成后,无论从哪个目录运行pytest,测试文件里直接用from project_name import moduleA就能导入模块。

方案4:配置pytest的Python路径

在项目根目录创建pytest.ini文件,内容如下:

[pytest]
pythonpath = src

或者创建pyproject.toml文件:

[tool.pytest.ini_options]
pythonpath = ["src"]

之后在项目根目录运行pytest,测试文件里直接用from project_name import moduleA导入模块即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 02:22:10