Tom*_*yer 8 python machine-learning pandas scikit-learn aws-lambda
我是AWS和Python的新手,并尝试使用AWS Lambda函数实现一个简单的ML推荐系统进行自学习.我被包裹在sklearn,numpy和pandas的组合上.如果结合任何两个lib意味着(Pandas和Numpy)或(Numpy和Skype)工作正常并且部署完美.因为我正在使用ML系统,所以我需要sklearn(scipy和pandas和numpy),它们无法工作并在aws lambda测试中得到此错误.到目前为止我所做的:我的部署包来自python3.6 virtualenv,而不是直接来自主机.(已经安装/配置了python3.6,virtualenv和awscli,并且你的lambda函数代码在〜/ lambda_code目录中):
cd ~ (我们将在主目录中构建virtualenv)
virtualenv venv --python=python3.6 (创建虚拟环境)
source venv/bin/activate (激活虚拟环境)
pip install sklearn, pandas, numpy
cp -r ~/venv/lib/python3.6/site-packages/* ~/lambda_code (将所有已安装的软件包复制到lambda_code目录的根级别.这将包含一些不必要的文件,但如果需要,您可以自行删除这些文件)
cd ~/lambda_code
zip -r9 ~/package.zip . (拉上lambda包)
aws lambda update-function-code --function-name my_lambda_function --zip-file fileb://~/package.zip (上传到AWS)
之后得到这个错误:
**"errorMessage": "Unable to import module 'index'"**
Run Code Online (Sandbox Code Playgroud)
和
START RequestId: 0e9be841-2816-11e8-a8ab-636c0eb502bf Version: $LATEST
Unable to import module 'index': **Missing required dependencies ['numpy']**
END RequestId: 0e9be841-2816-11e8-a8ab-636c0eb502bf
REPORT RequestId: 0e9be841-2816-11e8-a8ab-636c0eb502bf Duration: 0.90 ms Billed Duration: 100 ms Memory Size: 128 MB Max Memory Used: 33 MB
Run Code Online (Sandbox Code Playgroud)
我也在EC2实例上尝试过这个但是没有成功.我做了谷歌并阅读了多个博客和解决方案,但没有奏效.请帮我解决这个问题.
您需要确保所有依赖库和包含函数的 Python 文件都位于一个 zip 文件中,以便它能够检测到正确的依赖项。
因此,本质上,在上传之前,您需要将 Numpy、Panda 和您自己的文件全部放在一个 zip 文件中。还要确保您的代码将本地文件(位于同一解压缩目录中)作为依赖项引用。如果您已经这样做了,问题可能是如何引用您包含的库。将包含的库部署到 Lambda 后,通过获取 AWS 上的正确相对路径,确保您能够将包含的库用作依赖项。