AWS Lambda函数中缺少必需的依赖项['numpy']

时间:2018-12-03 22:03:01

标签: pandas python-2.7 numpy aws-lambda

我想很多人都遇到过同样的问题。我试图找到每个可能的博客并尝试所有方法。我已经到达这一点,并停留在这里。

我正在使用无服务器框架和virtualenv。

serverless.yml:

 service: test-pandas
 provider:
   name: aws
   runtime: python2.7
 plugins:
   - serverless-python-requirements
 package:
    exclude:
       - venv/**
       - node_modules/**
 functions:
    hello:
       handler: validation.hello

validation.py:

import pandas as pd
import numpy as np 

def hello(event, context):
    return "hello world"

我正在使用python 2.7。我已经在Virtualenv中运行了以下命令:

virtualenv venv --python=python2
source venv/bin/activate
pip install pandas
pip freeze > requirements.txt
cat requirements.txt

在创建requirements.txt之前,错误是“没有名为pandas的导入模块”,并且在设置了serverless-python-requirements之后,我得到了“缺少必需的依赖项['numpy']”。

我在这里想念东西吗?

1 个答案:

答案 0 :(得分:1)

我使用Docker打包Lambda函数并将其与库一起部署。

在serverless.yml中添加以下内容:

custom:
  pythonRequirements:
    dockerizePip: non-linux

确保Docker在您的机器上运行,并使用无服务器命令进行部署。我注意到的另一件事是,在使用Docker之后,.zip文件大小减少了几乎原始文件大小的一半。