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

AWS Lambda升级Python版本后XGBoost库加载失败求助

问题描述

完整错误信息

[ERROR] XGBoostError: XGBoost Library (libxgboost.so) could not be loaded.
Likely causes:
  * OpenMP runtime is not installed (vcomp140.dll or libgomp-1.dll for Windows, libgomp.so for UNIX-like OSes)
  * You are running 32-bit Python on a 64-bit OS
Error message(s): ['libgomp.so.1: cannot open shared object file: No such file or directory']

环境背景

  • 使用AWS Lambda函数
  • 导入XGBoost时触发上述错误
  • 升级Lambda运行时从Python 3.6到3.9后出现该问题
  • 从S3存储桶的压缩包导入XGBoost
  • 已尝试将libgomp.so.1与XGBoost压缩包一起打包,但问题未解决
解决方案

1. 手动指定库路径并加载依赖

Lambda不会自动识别自定义打包的系统库,在导入XGBoost前添加以下代码:

import os
from ctypes import cdll

# 将libgomp.so.1所在目录加入系统库路径,替换为你实际的路径
os.environ['LD_LIBRARY_PATH'] = f"{os.environ.get('LD_LIBRARY_PATH', '')}:/var/task"
# 手动加载库,路径对应压缩包中文件位置
cdll.LoadLibrary('/var/task/libgomp.so.1')

# 之后再导入XGBoost
import xgboost as xgb

如果libgomp.so.1放在子目录,就把路径改成对应子目录,比如/var/task/libs/libgomp.so.1。

2. 编译适配Amazon Linux 2的XGBoost包

Python 3.9的Lambda运行环境基于Amazon Linux 2,和Python 3.6使用的旧Amazon Linux AMI环境不兼容,之前的XGBoost包可能适配性不足。

  • 切换到Amazon Linux 2环境(EC2实例或Docker镜像amazonlinux:2)执行以下操作:
    # 安装编译依赖
    yum install -y gcc-c++ python3-devel openmp-devel
    # 将XGBoost安装到指定目录
    pip3 install xgboost -t ./lambda_pkg
    # 复制系统中的libgomp.so.1到包目录
    cp /usr/lib64/libgomp.so.1 ./lambda_pkg/
    

将lambda_pkg目录打包上传到S3,让Lambda加载这个适配新环境的包。

3. 检查压缩包目录结构

确保压缩包解压后,XGBoost和libgomp.so.1都直接在/var/task路径下(Lambda代码默认解压到此目录),不要嵌套过深的子目录,否则导入时无法找到文件。

4. 改用Lambda层管理依赖

把XGBoost和依赖库做成Lambda层,更便于管理和复用:

  • 按以下结构创建目录:
    python/lib/python3.9/site-packages/  # 放置XGBoost
    lib/  # 放置libgomp.so.1
    
  • 将目录打包成zip上传为Lambda层,然后关联到你的Lambda函数
  • 代码中设置库路径指向层的目录:
    os.environ['LD_LIBRARY_PATH'] = f"{os.environ.get('LD_LIBRARY_PATH', '')}:/opt/lib"
    cdll.LoadLibrary('/opt/lib/libgomp.so.1')
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 21:35:08