是否可以在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" (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |