AWS Lambda中OR-Tools层_pywrapcp导入失败的简易修复问询
解决AWS Lambda Python 3.9环境下OR-Tools导入
_pywrapcp失败的问题 问题根源
你遇到的ImportError是因为本地pip安装的OR-Tools包含适配你本地操作系统的二进制扩展模块,而AWS Lambda运行在Amazon Linux 2环境中,本地编译的二进制文件无法在该环境下加载,导致无法导入_pywrapcp这个C扩展组件。
简易解决步骤(无需Docker/EC2)
只需要修改pip安装命令,指定适配Amazon Linux 2的预编译二进制包,就能创建出兼容Lambda的层:
- 创建并进入python目录:
mkdir python cd python
- 使用带平台参数的pip命令安装OR-Tools:
pip3 install ortools --platform manylinux2014_x86_64 --only-binary=:all: -t .
--platform manylinux2014_x86_64:指定下载适配Amazon Linux 2的预编译二进制包--only-binary=:all::强制只下载预编译包,避免本地编译生成不兼容的文件
压缩层文件:
回到上级目录,直接压缩python文件夹(确保压缩包的根目录是python,里面包含ortools等文件,结构为zip包 -> python -> ortools/...)上传压缩包作为Lambda层,关联到你的Python 3.9 Lambda函数即可。
验证
部署完成后,再次执行Lambda函数,from ortools.constraint_solver import pywrapcp的导入操作应该能正常完成,不会再出现_pywrapcp相关的导入错误。
内容的提问来源于stack exchange,提问作者Max
相关产品推荐
相关产品推荐

