加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

是否可以在AWS Lambda环境中正确指向Python Shapely库的LIBGEOS_

发布时间:2020-12-20 13:15:28 所属栏目:Python 来源:网络整理
导读:我正在尝试编写一个AWS python Lambda函数,该函数利用Shapely进行简单的“多边形点”操作.我创建了一个AWS linux EC2实例,安装了Shapely并且有一个工作脚本.然后我从我的EC2实例下载了linux特定的libgeos_c.so.1二进制文件,并将其捆绑(通过无服务器框架)与我
我正在尝试编写一个AWS python Lambda函数,该函数利用Shapely进行简单的“多边形点”操作.我创建了一个AWS linux EC2实例,安装了Shapely并且有一个工作脚本.然后我从我的EC2实例下载了linux特定的libgeos_c.so.1二进制文件,并将其捆绑(通过无服务器框架)与我的lambda函数存在于同一目录中.但是,一旦我部署脚本将无法执行,因为它会抛出“无法找到库或加载其任何变体…”错误.我甚至试图通过GEOS_LIBRARY_PATH环境变量明确指向libgeos_c.so.1路径无效.这是不可能的部署吗?

这是一个代码片段,用于设置环境变量,然后调用实际导入和利用的辅助脚本.

import sys
import os
import subprocess

here = os.path.dirname(os.path.realpath(__file__))

# Import installed packages (in site-packages)
site_pkgs = os.path.join(here,"venv","lib","python2.7","site-packages") 
sys.path.append(site_pkgs)
import json

def hello(event,context):

    command = "GEOS_LIBRARY_PATH={} python test_geo_worker.py".format(here + "/libgeos_c.so.1")
    foo = subprocess.check_output(command,shell=True)
    print foo

有没有人成功地在lambda中部署过?我的后备计划是回到好的旧postgres / postgis而不是匀称,但我肯定想尝试在dynamo / lambda堆栈中构建它.

解决方法

有可能的.
尝试按照这些步骤操作,看看问题是否仍然存在.

首先,安装GEOS:

yum install geos-devel.x86_64

然后Shapely:

pip2.7 install shapely

尝试导入Shapely:

python2.7 -c "import shapely"

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读