我正在尝试在 AWS lambda 函数中运行 cvxpy 包。该包不在 SDK 中,因此我了解到我必须将依赖项编译为 zip,然后将 zip 上传到 lambda 函数中。
我已经做了一些研究并尝试了下面的链接,但是当我尝试 pip install cvxpy 时,我收到错误消息 - 我使用的是 Windows 机器,但我知道 AWS Lambda 在 Linux 上运行。
感谢您的帮助!
http://i-systems.github.io/HSE545/machine%20learning%20all/cvxpy_install/CVXPY%2BInstallation%2BGuide%2Bfor%2BWindows.html
https://programwithus.com/learn-to-code/Pip-and-virtualenv-on-Windows/
https://medium.com/@manivannan_data/import-custom-python-packages-on-aws-lambda-function-5fbac36b40f8
https://www.cvxpy.org/install/index.html
用于安装cvxpy
在 Windows 上它需要 C++ 构建工具(请参考:https://buildmedia.readthedocs.org/media/pdf/cvxpy/latest/cvxpy.pdf)
在 Windows 上:
- 我创建了一个lambda层python目录结构
python/lib/python3.7/site-packages
(参考:https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html)并在该 site-packages 目录中安装了我的 pip 包。
pip install cvxpy --target python/lib/python3.7/site-packages
- 然后,我拉上拉链
python/lib/python3.7/site-packages
作为 cvxpy_layer.zip 并将其上传到 S3 存储桶(层压缩文件最大限制仅为 50 MBhttps://docs.aws.amazon.com/lambda/latest/dg/limits.html),将其附加到我的 lambda 层。
- 现在,该层已准备就绪,但 lambda 无法导入安装在 Windows 计算机上的包。 (参考:AWS Lambda - 无法导入模块“lambda_function”)
在 Linux 上:
- 我创建了与之前相同的目录结构
python/lib/python3.7/site-packages
并安装 cvxpy 并将其压缩,如下所示。
- 后来我将 zip 文件上传到 S3 存储桶并创建了一个新的 lambda 层。
- 将该 lambda 层附加到我的 lambda 函数中,我可以解决之前失败的导入问题,并在 lambda 上运行基本的 cvxpy 程序。
mkdir -p alley/python/lib/python3.7/site-packages
pip install cvxpy --target alley/python/lib/python3.7/site-packages
cd alley
zip -rqvT cvxpy_layer.zip .
Lambda 层图像:
Lambda函数执行:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)