Search code examples
pythonamazon-web-servicesgeventaws-lambdagrequests

Unable to import grequests for AWS Lambda


I'm running an AWS Lambda script with a Python 2.7 runtime. However, whenever it initializes it begins to import the grequests library but fails because of it's dependency on gevent:

Gevent is required for grequests.

It seems it is successfully finding the grequests library (since it knows it needs gevent) but fails.

What I've tried so far:

pip install --ignore-installed grequests -t .

pip install --ignore-installed grequests -t ./lib

pip install --ignore-installed gevent -t .

pip install --ignore-installed gevent -t ./lib

And then I compress the contents of the directory and upload to AWS per the instructions here: http://docs.aws.amazon.com/lambda/latest/dg/lambda-python-how-to-create-deployment-package.html

It seems no matter what I try the Lambda is unable to locate gevent, but it's able to find other non-default libraries with no issue.


Solution

  • I had to build gevent from src on an Amazon Linux instance. I put the resultant files in a zip if anyone needs them--just include them in your uploaded Lambda zip and you should be concurrent-ing like a boss.

    https://github.com/brandonmp/aws-lambda-grequests