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

我正在使用无服务器框架和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']”。

我在这里想念什么吗?

最佳答案

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

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

custom:
  pythonRequirements:
    dockerizePip: non-linux


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

关于pandas - AWS Lambda函数中缺少必需的依赖项['numpy'],我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53602620/

10-11 10:32