START RequestId:3d5691d9-ad79-4eed-a26c-5bc3f1a23a99 版本:$LATEST 无法导入模块“lambda_function”:没有名为“pandas”的模块
END RequestId:3d5691d9-ad79-4eed-a26c-5bc3f1a23a99
我使用 Windows 7 64 位作为主机操作系统。
我想做的事
我只是想在 AWS-Lambda 环境中使用 pandas。就像我在 windows 环境中使用它一样,我正在为 Lambda 寻找一个简单的解决方案。
到目前为止我尝试过的
- 在虚拟盒子上安装了 Xubuntu。
myvenv
在虚拟盒上创建一个名为 Xubuntu 的虚拟环境。- 然后我在
myvenv
. - 此后,我将文件夹内容复制
myvenv
到'/usr/local/lib/python3.6/site-packages/'
我的主机操作系统。 - 在主机操作系统(Windows 7)中,我创建了一个名为 的文件夹
packs
,粘贴了myvenv
. - 在主机操作系统(Windows 7)中创建了一个
lambda_function.py
脚本packs
- 然后我使用 7zip 软件压缩文件夹并
packs
上传zip
Lambda
- 在 Lambda 中,lambda 函数处理程序名称为
lambda_handler()
. 代码片段看起来像,
将熊猫导入为 pd
def lambda_handler(event, context): dates = pd.date_range('2019001', periods=6) df = pd.DataFrame(np.random.randn(6, 4), index=dates, columns=list('ABCD')) print(df)
- 处理程序被命名为
lambda_function.lambda_handler
. 我已授予 lambda-roleAWSLambdaFullAccess
权限。 - 超时设置为 4 分 3 秒。
测试事件看起来像
{ "key1": "如果一切正常,这将被打印出来" }
我尝试了以下解决方案:
- 从这里为 pandas 和 numpy 尝试了预编译的与 linux 兼容的二进制文件——没有运气。
- 在 Lambda 中,将其更改
Handler info
为python_filename.function_name。就我而言,它是lambda_function.lambda_handler - failed with no module named 'pandas' error。 - 将 lambda 函数放在根文件夹中,使用 7zip 软件压缩文件夹并将文件夹上传到 S3 存储桶。就我而言,我将函数放置在 location
python\lib\python3.6\site_packages\lambda_function.py
failed with no module named 'pandas' error。 - 已经尝试过发布在 SO, 1 , 2 , 3 , 4 , 5 , 6上的这些相关解决方案
注意:我不想使用 Docker,因为我不知道如何使用它,我也不愿意学习它,因为我现在很生气。我来自 Windows 环境(这很糟糕,我现在知道了。)
关于如何让它发挥作用的任何想法。