将 fbprophet 作为 AWS Lambda 层导入

Importing fbprophet as a AWS Lambda layer

无法将 fbprophet 打包到可以导入 AWS Lambda 的层中。需要帮助。

我的本地计算机是安装了 Sierra 的 Mac。我正在尝试为 Python 3 中使用的不同库创建层,作为 AWS Lambda 无服务器架构的一部分。我已成功打包 Pandas 库并将其作为图层导入。但是,当我为 fbprophet 尝试类似的方法时,它失败了。

错误:

ModuleNotFoundError: No module named 'pystan'

我正在使用从需求文件中读取并安装其中列出的不同模块的脚本。这是脚本的代码:

#!/bin/bash

export PKG_DIR="python"

docker run --rm -v $(pwd):/foo -w /foo lambci/lambda:build-python3.6 \
pip install -r requirements.txt -t ${PKG_DIR}

requirements.txt 文件如下所示: fbprophet==0.5

然而,当我尝试安装 fbprophet 时,它失败了:

ModuleNotFoundError: No module named 'pystan'

我原以为 fbprophet 会被安装,它可以被压缩并用作 Lambda 上的一个层,但无法超出当前点。帮助解决这个问题将不胜感激!谢谢。

发现是由于 gcc 编译器不兼容导致 fbprophet 未被编译并打包到 AWS Lambda 层中。使用conda创建了一个虚拟环境并安装了gcc,如下:

conda install clang_osx-64 clangxx_osx-64 -c anaconda

然后,按照本文的步骤操作:https://towardsdatascience.com/how-to-get-fbprophet-work-on-aws-lambda-c3a33a081aaf

这安装了 fbprophet,我能够将其打包并作为 Lambda 层上传。