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

Jenkins执行pytest遇ModuleNotFoundError: No module named 'easynmt'

问题排查与解决步骤

1. 定位核心原因

Jenkins日志显示找不到torch==2.2.2的匹配版本,这是根本问题——因为easynmt依赖torch,torch安装失败会导致easynmt也无法正常安装(即使requirements里声明了,pip会跳过依赖不满足的包),最终触发ModuleNotFoundError: No module named 'easynmt'。

2. 解决torch版本安装问题

情况1:Jenkins代理的Python版本不兼容

torch==2.2.2仅支持Python 3.8-3.11,先检查Jenkins环境的Python版本:

python --version

如果Python版本不在该范围内,要么降级/升级Python,要么更换兼容的torch版本(比如torch==2.3.0支持Python 3.8-3.12)。

情况2:Jenkins代理的系统架构/平台不支持

torch的部分版本仅提供特定平台的预编译包,比如ARM架构机器可能没有torch==2.2.2的预编译包,先检查Jenkins节点的系统信息:

uname -m && cat /etc/os-release  # Linux
system_profiler SPSoftwareDataType  # macOS

如果是小众架构,可选择:

  • 更换为支持该架构的torch版本(比如torch==2.2.0开始支持ARM64)
  • 从源码编译torch(不推荐,耗时且易出问题)

情况3:pip源问题导致无法拉取包

国内环境或私有网络可能无法访问PyPI官方源,可切换到国内镜像源安装:

pip install torch==2.2.2 easynmt==2.0.2 -i https://pypi.tuna.tsinghua.edu.cn/simple

如果是私有源,需在pip命令中添加--extra-index-url指定源地址。

3. 验证依赖安装状态

在Jenkins执行脚本中,安装依赖后添加验证步骤,确认包是否真的安装成功:

pip list | grep -E "torch|easynmt"

如果输出为空,说明依赖未装上,回到步骤2排查;如果有输出,再检查Python环境是否正确(比如是否激活了虚拟环境)。

4. 确保Jenkins脚本正确激活虚拟环境

很多时候Jenkins脚本创建虚拟环境后,未正确激活就执行pip安装和pytest,导致依赖装到系统Python而非虚拟环境中。正确脚本示例:

# 创建并激活虚拟环境
python -m venv venv
source venv/bin/activate  # Linux/macOS
# 或 venv\Scripts\activate.bat  # Windows

# 安装依赖
pip install -r test_requirements.txt
# 或从setup.py安装(若为可分发项目)
pip install -e .[test]

# 验证依赖
pip list | grep -E "torch|easynmt"

# 执行测试
python -m pytest tests/

5. 额外检查项

  • 确认setup.py或test_requirements.txt中无拼写错误,比如torch的包名、版本号是否正确
  • 如果使用conda环境,确保Jenkins脚本正确激活conda环境,且conda源配置正常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 20:04:54