Python 无法将cvxpy安装到AWS lambda的virtualenv中

Python 无法将cvxpy安装到AWS lambda的virtualenv中,python,amazon-web-services,aws-lambda,virtualenv,cvxpy,Python,Amazon Web Services,Aws Lambda,Virtualenv,Cvxpy,我试图在AWS lambda函数中运行cvxpy包。这个包不在SDK中,所以我读到我必须将依赖项编译成zip,然后将zip上传到lambda函数中 我做了一些研究并尝试了下面的链接,但是当我尝试pip安装cvxpy时,我收到了错误消息——我在Windows机器上,但我知道AWS Lambda在Linux上运行 谢谢你的帮助 您可以将所有依赖项以及lambda源代码打包到一个zipfile中并部署它。这样做,您将在多个lambda函数中获得额外的重复代码。假设,如果多个lambda函数需要相

我试图在AWS lambda函数中运行cvxpy包。这个包不在SDK中,所以我读到我必须将依赖项编译成zip,然后将zip上传到lambda函数中

我做了一些研究并尝试了下面的链接,但是当我尝试pip安装cvxpy时,我收到了错误消息——我在Windows机器上,但我知道AWS Lambda在Linux上运行

谢谢你的帮助


您可以将所有依赖项以及lambda源代码打包到一个zipfile中并部署它。这样做,您将在多个lambda函数中获得额外的重复代码。假设,如果多个lambda函数需要相同的包
cvxpy
,则必须分别为这两个函数打包两次

相反,更好的选择是尝试
Labmda层
,将所有依赖项放在一个包中,并在Lambda中部署一个层。然后将该层附加到您的函数,从中获取其依赖项。甚至可以对图层进行版本控制。:)

请参阅以下连结:


您可以将所有依赖项以及lambda源代码打包到一个zipfile中并部署它。这样做,您将在多个lambda函数中获得额外的重复代码。假设,如果多个lambda函数需要相同的包
cvxpy
,则必须分别为这两个函数打包两次

相反,更好的选择是尝试
Labmda层
,将所有依赖项放在一个包中,并在Lambda中部署一个层。然后将该层附加到您的函数,从中获取其依赖项。甚至可以对图层进行版本控制。:)

请参阅以下连结:


在Windows上安装<代码> CVXPY <代码>,它需要C++的构建工具(请参阅:)/P> 在Windows上:

  • 我创建了一个lambda层python目录结构
    python/lib/python3.7/site packages
    (请参阅:)并在该site packages目录中安装了我的pip包
  • 然后,我将
    python/lib/python3.7/site包压缩为cvxpy_layer.zip,并将其上载到一个S3存储桶(layer-zipped file max limit仅为50MB),以将其附加到我的lambda层
  • 现在,层已经准备好了,但是lambda无法导入安装在windows机器上的包。(参考:)
在Linux上:
  • 我创建了与前面的
    python/lib/python3.7/site包相同的目录结构,并安装了cvxpy,并将其压缩,如下所示
  • 后来我将zip文件上传到一个S3 bucket,并创建了一个新的lambda层
  • 将lambda层附加到lambda函数中,我可以解决之前失败的导入问题,并在lambda上运行基本的cvxpy程序
Lambda层图像:

Lambda函数执行:

< P>在Windows上安装<代码> CVXPY <代码>,它需要C++的构建工具(请参阅:)/P> 在Windows上:
  • 我创建了一个lambda层python目录结构
    python/lib/python3.7/site packages
    (请参阅:)并在该site packages目录中安装了我的pip包
  • 然后,我将
    python/lib/python3.7/site包压缩为cvxpy_layer.zip,并将其上载到一个S3存储桶(layer-zipped file max limit仅为50MB),以将其附加到我的lambda层
  • 现在,层已经准备好了,但是lambda无法导入安装在windows机器上的包。(参考:)
在Linux上:
  • 我创建了与前面的
    python/lib/python3.7/site包相同的目录结构,并安装了cvxpy,并将其压缩,如下所示
  • 后来我将zip文件上传到一个S3 bucket,并创建了一个新的lambda层
  • 将lambda层附加到lambda函数中,我可以解决之前失败的导入问题,并在lambda上运行基本的cvxpy程序
Lambda层图像:

Lambda函数执行:

您是否可以提供另一个示例?我正在特别尝试使用cvxpy,但我无法安装和打包它。您是否有其他示例可以提供?我特别尝试使用cvxpy,但我无法安装和打包它。在后台,AWS lambda运行Amazon Linux,因此任何在Windows上编译的包都无法工作。这就是为什么需要在linux上编译它。有一个lambci docker容器可以帮助您做到这一点。在后台,AWS lambda运行Amazon Linux,因此任何在Windows上编译的包都无法工作。这就是为什么需要在linux上编译它。有一个lambci docker容器可以帮助您实现这一点。
pip install cvxpy --target python/lib/python3.7/site-packages
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 .