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

Python引用framework目录模块时出现ModuleNotFoundError的解决办法咨询

Python引用framework目录模块时出现ModuleNotFoundError的解决办法咨询

你遇到的这个问题我之前做项目时也踩过坑,本质就是Python解释器找不到framework模块的所在路径,下面给你几个实用的解决办法,你可以根据自己的情况选:

方法1:在测试文件里手动添加项目根目录到Python路径

直接在test_myunittest.py的最开头加上这段代码,把项目根目录(也就是C:\automation)加入到Python的搜索路径中:

import sys
from pathlib import Path

# 自动获取项目根目录,不用硬编码路径
project_root = Path(__file__).parent.parent.parent
sys.path.append(str(project_root))

# 然后再正常导入
import pytest
from framework import constants

这样不管你在哪里运行这个测试文件,Python都能定位到framework目录。

方法2:切换到项目根目录再运行pytest

不用改任何代码,打开命令行,先切换到C:\automation目录,再运行pytest命令:

cd C:\automation
pytest tests/unit-tests/test_myunittest.py

Python会自动把当前工作目录(也就是项目根目录)加入到模块搜索路径里,自然就能找到framework模块了。

方法3:设置PYTHONPATH环境变量

你可以临时或者永久把项目根目录加到系统的PYTHONPATH环境变量中:

  • 临时生效(仅当前命令行窗口):在Windows命令行输入
    set PYTHONPATH=C:\automation
    
    之后再运行pytest就没问题了。
  • 永久生效:打开Windows的系统环境变量设置,新增一个PYTHONPATH变量,值设为C:\automation,这样每次打开命令行都能直接找到这个路径。

方法4:相对导入(不推荐)

这个方法局限性比较大,仅作参考。你可以把导入语句改成相对路径的形式:

from ...framework import constants

但要注意,这种方式只能把测试文件当作包的一部分来运行,比如必须从项目根目录用python -m pytest tests/unit-tests/test_myunittest.py来执行,直接双击运行测试文件会报错,所以一般不推荐用这个方法。

为啥会出现这个错误?

简单说就是你运行pytest的时候,Python的模块搜索路径里没有包含framework所在的C:\automation目录,所以它找不到这个模块。只要让Python能定位到项目根目录,问题就解决啦。

备注:内容来源于stack exchange,提问作者bearaman

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 17:48:12