打包适用于AWS Lambda的Python Pipenv项目

时间:2018-08-03 20:41:14

标签: python aws-lambda pipenv

我有一个python项目,正在使用pipenv处理deps。

我需要创建一个包含源代码和所有依赖项代码的zip文件。我需要此zip文件才能将其上传到AWS Lambda。

使用pipenv时,它会将依赖库下载到计算机中的某个位置,但是为了打包/分发项目,我需要将所有必需的代码包含在同一位置(一个zip文件)。

是否可以运行pipenv并将其设置为在特定路径上安装依赖项?如果不是,是否有人知道这些依赖项在我的计算机中的位置?

谢谢

1 个答案:

答案 0 :(得分:5)

这对我有用:

#!/bin/bash

# this is b/c pipenv stores the virtual env in a different
# directory so we need to get the path to it
SITE_PACKAGES=$(pipenv --venv)/lib/python3.6/site-packages
echo "Library Location: $SITE_PACKAGES"
DIR=$(pwd)

# Make sure pipenv is good to go
echo "Do fresh install to make sure everything is there"
pipenv install

cd $SITE_PACKAGES
zip -r9 $DIR/package.zip *

cd $DIR
zip -g package.zip posts.py

我专门用numpy尝试过,它可以正常工作。它还包含.so文件,这很好,因为所有内容都是自包含的。