【问题标题】:Setting up Shapely on AWS Lambda Python functions在 AWS Lambda Python 函数上设置 Shapely
【发布时间】:2019-06-03 20:16:49
【问题描述】:

我尝试在 AWS Lambda 上设置 Shapely,但总是出现以下错误。

module initialization error: Could not find lib geos_c or load any of its variants ['libgeos_c.so.1', 'libgeos_c.so', '/usr/lib/libgeos_c.so'].

不确定在这种情况下如何构建shapely。已在 Linux 实例上构建了我的包,并将其用于部署目的。

【问题讨论】:

    标签: python aws-lambda shapely


    【解决方案1】:

    如果您希望构建自己的 Lambda 兼容二进制文件以用于部署程序包,AWS 会在此处说明构建它们所需的 AMI:

    https://docs.aws.amazon.com/lambda/latest/dg/current-supported-versions.html

    我已经使用该特定 AMI 创建了一个 EC2 实例,然后使用 pip 将我需要的包安装到目标文件夹 -t。完成后,我只需将其 tar'd 并用作我的部署包的基础,它就可以工作了。

    或者,我从以下位置下载:https://github.com/ryfeus/lambda-packs 并复制了我需要的包。 (在 shapley 的情况下,是 shapely 和 shapely-1.6b4.dist-info 目录。

    我相信这些目前仅针对 Python 2.7 构建,并且我仅使用上述 AMI 为 Python 2.7 编译了二进制文件。

    HTH

    【讨论】:

      【解决方案2】:

      我遇到了同样的问题,并且能够设置为在 Lambda 中构建一个层。我在https://github.com/bearflagrobotics/libgeos-lambda-build 将它写成一个开源包,使用 Docker 构建二进制发行版。您可以将其作为 lambda 函数的层放入并运行您想要的任何版本的 Shapely 或 Python!

      【讨论】:

        猜你喜欢
        • 2018-08-19
        • 1970-01-01
        • 2016-06-02
        • 2016-03-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-19
        • 2023-03-12
        相关资源
        最近更新 更多