【问题标题】:Package Python Pipenv project for AWS Lambda为 AWS Lambda 打包 Python Pipenv 项目
【发布时间】:2019-01-11 18:35:09
【问题描述】:

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

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

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

有没有办法运行 pipenv 并将其设置为在特定路径安装依赖项?如果没有,有人知道这些依赖项在我的机器中的位置吗?

谢谢

【问题讨论】:

    标签: python aws-lambda pipenv


    【解决方案1】:

    这对我有用:

    #!/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 文件,这很棒,因为一切都是自包含的。

    【讨论】:

    • 这将打包 SITE_PACKAGES 下的所有包。最终的 zip 文件可能包含很多未使用的包?
    • 否,因为 SITE_PACKAGES 特定于 Pipenv,因此它只会安装 Pipenv 环境所需的包/依赖项。
    猜你喜欢
    • 1970-01-01
    • 2018-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多