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

POM结构下导入pages模块遇ModuleNotFoundError的技术求助

解决ModuleNotFoundError: No module named 'pages'的问题

你已经做好了模块的基础配置(添加了__init__.py),问题的核心是Python解释器的模块搜索路径没有包含你的项目根目录(POM),所以它找不到pages这个顶级模块。下面给你几个实用的解决办法,按需选择:

方法1:在测试文件中临时添加路径(快速临时方案)

在你的login_test.py开头加上这段代码,手动把项目根目录加入Python的搜索路径:

import sys
import os

# 获取当前测试文件的目录,往上两级就是POM根目录
project_root = os.path.abspath(os.path.join(os.path.dirname(__file__), '../../'))
sys.path.insert(0, project_root)

# 现在就可以正常导入了
from pages.login.login_page import LoginPage

这个方法不用改环境或全局配置,适合快速验证,但如果测试文件较多,每个都要加代码会有点繁琐。

方法2:设置PYTHONPATH环境变量(环境级配置)

激活虚拟环境后,把POM目录的绝对路径添加到PYTHONPATH里,这样Python每次运行都会自动搜索这个路径:

  • Windows(cmd):
set PYTHONPATH=C:\你的项目路径\POM
  • Linux/macOS(终端):
export PYTHONPATH=/你的项目路径/POM

如果想让配置永久生效,可以把上面的命令加到虚拟环境的激活脚本里(比如venv/bin/activate文件末尾)。

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

这是最规范的做法,把你的POM项目变成一个可本地安装的Python包,之后不管在哪里运行测试都能直接导入模块:

  1. 在POM目录下创建setup.py文件,内容如下:
from setuptools import setup, find_packages

setup(
    name="pom-test-project",
    version="0.1.0",
    packages=find_packages(),  # 自动识别所有带__init__.py的包
)
  1. 激活虚拟环境,在POM目录下运行:
pip install -e .

-e表示可编辑模式,之后你修改项目代码会自动生效,不用重新安装。

完成后,你就可以在任何测试文件里直接用from pages.login.login_page import LoginPage导入了,完全不需要路径相关的额外配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 04:16:34