6

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?

Benny Bauer
  • 1,035
  • 1
  • 6
  • 19
tomcounsell
  • 4,991
  • 3
  • 34
  • 34

2 Answers2

12
  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.

Community
  • 1
  • 1
Benny Bauer
  • 1,035
  • 1
  • 6
  • 19
0

I had similar problem, took these steps to deploy with dependencies. https://stackoverflow.com/a/41634501/2571060

Community
  • 1
  • 1
Rajesh Hegde
  • 2,702
  • 1
  • 18
  • 23