Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to import Python dependencies in Serverless v1.0

Language: Python Framework: Serverless v1.0

Typically I would run pip freeze > requirements.txt in the project root

How can I get these dependencies packaged into every deploy?

like image 959
tomcounsell Avatar asked Sep 29 '16 15:09

tomcounsell


1 Answers

  1. create requirements.txt

    pip freeze > requirements.txt

  2. create a folder with all the dependencies:

    pip install -t vendored -r requirements.txt

Note that in order to use these dependencies in the code you'll need to add the following:

import os
import sys
here = os.path.dirname(os.path.realpath(__file__))
sys.path.append(os.path.join(here, "./vendored")) 

See https://stackoverflow.com/a/36944792/1111215 for another example.


UPDATE: Instead of the bullet (2) and the code above, you can now use the serverless-python-requirements plugin:

install the plugin

npm install --save serverless-python-requirements

and add the plugin to your serverless.yml

plugins:
  - serverless-python-requirements

Don't forget to make sure you have a requirements.txt file.

That's it, once sls deploy is called the plugin will package the dependencies with the code.

For a full sample take a look at the serverless-python-sample.

like image 137
Benny Bauer Avatar answered Oct 24 '22 14:10

Benny Bauer