&引用;errorMessage";:&引用;无法导入模块';lambda#u函数&x27&引用;

&引用;errorMessage";:&引用;无法导入模块';lambda#u函数&x27&引用;,lambda,Lambda,需要使用python依赖项(如numpy、pandas)在AWS中部署lambda函数。 在生成所有的zip文件并使用与S3路径一起执行后,发现以下错误 无法导入模块“lambda_函数”: 导入多数组numpy扩展模块失败。最 您可能正在尝试导入失败的numpy版本。 如果您正在使用numpy git回购,请尝试git clean-xdf(删除所有 不受版本控制的文件)。否则重新安装numpy 最初的错误是:无法导入name multiarray经过大量的努力,我发现我必须从python3.6

需要使用python依赖项(如numpy、pandas)在AWS中部署lambda函数。 在生成所有的zip文件并使用与S3路径一起执行后,发现以下错误

无法导入模块“lambda_函数”: 导入多数组numpy扩展模块失败。最 您可能正在尝试导入失败的numpy版本。 如果您正在使用numpy git回购,请尝试
git clean-xdf
(删除所有 不受版本控制的文件)。否则重新安装numpy


最初的错误是:无法导入name multiarray

经过大量的努力,我发现我必须从python3.6 virtualenv中创建部署包,而不是直接从主机创建。我在Ubuntu 16.04 docker映像中做了以下操作。这假设您已经安装/配置了python3.6、virtualenv和awscli,并且lambda函数代码位于
~/lambda_code
目录中:

1)
cd~
(我们将在主目录中构建virtualenv)

2)
virtualenv-venv--python=python3.6
(创建虚拟环境)

3)
源venv/bin/activate
(激活虚拟环境)

4)
pip安装numpy

5)
cp-r~/venv/lib/python3.6/site packages/*~/lambda_code
(将所有安装的软件包复制到lambda_代码目录的根目录中。这将包括一些不必要的文件,但如果需要,您可以自己删除这些文件)

6)
cd~/lambda\u代码

7)
zip-r9~/package.zip.
(拉上lambda包的拉链)

8)
aws lambda更新函数代码——函数名my_lambda\u函数——zip文件文件b://~/package.zip
(上传到aws)

您的lambda函数现在应该能够导入numpy,而不会出现任何问题


如果你想要一个更加现成的解决方案,你可以考虑使用无服务器来部署你的lambda函数。在找到上述解决方案之前,我遵循了指南,并能够在python3.6 lambda函数中成功运行numpy。

感谢cailan为我提供了它的工作,但现在我面临在aws中部署sklearn的问题。如果你有任何想法,你的帮助是伟大的,因为我没有使用SKL了解自己,但可以作为一个起点。如果你发布你的问题到底是什么,也许我或其他人能帮上忙,这让我的一天工作变得轻松。好书。确保你们所有人都在为任何python创建virtualenv的路径中拥有bin!那是我打的唯一一个嗝。