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

使用pytest运行测试时遭遇Python模块导入问题求助

解决pytest运行时ModuleNotFoundError: No module named 'datastore'的问题

核心原因

PyCharm会自动将项目根目录加入Python的PYTHONPATH,但终端运行pytest时不会默认做这件事,导致Python无法识别你的自定义包(datastore、services)。

解决方案

方法1:临时设置PYTHONPATH(快速验证)

进入项目根目录(即包含datastore、services、tests的文件夹),执行对应命令:

# macOS/Linux
export PYTHONPATH="$PWD" && python -m pytest

# Windows CMD
set PYTHONPATH=%cd% && python -m pytest

# Windows PowerShell
$env:PYTHONPATH = (Get-Location).Path; python -m pytest

方法2:用conftest.py自动配置路径

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

import sys
from pathlib import Path

# 将项目根目录添加到Python路径
sys.path.append(str(Path(__file__).parent))

之后直接运行python -m pytest即可,pytest会自动加载该文件并完成路径配置。

方法3:将项目安装为可编辑包(推荐长期方案)

  1. 在项目根目录创建setup.py文件:
from setuptools import setup, find_packages

setup(
    name="jr101425",
    version="0.1.0",
    packages=find_packages(exclude=["tests"]),
)
  1. 激活venv后执行安装命令:
pip install -e .

完成后你的自定义包会被Python识别为全局可导入包,无论在哪个目录运行测试或代码都不会出现导入问题。

额外注意事项

确保datastore、datastore/models、services、tests目录下都存在空的__init__.py文件(Python 3.3+支持无__init__.py的命名空间包,但显式添加可避免兼容性问题)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 12:57:20