如何为 Shapely 2.0 (Python3.9) 创建 AWS Lambda 层?

问题描述 投票:0回答:0

我一直在尝试为 Lambda 创建一个层,它允许我在运行时 python 3.9 中使用 shapely。出于某种原因,lambda 一直返回错误:

lambda_function': No module named 'shapely.lib

所以我的 .zip 文件可能有问题。我安装在路径

shapely.zip/python/..

这是我到目前为止所做的:

  1. 寻找依赖项并最终在 python3 venv 中压缩在一起:shapely、geos、pyproj 和 numpy,如下所示:

mkdir python

python3 -m venv env

source env/bin/activate

cd python

pip3 install shapely -t python

pip3 install geos -t python

pip3 install numpy -t python

pip3 install pyproj -t python

zip -r shapely.zip python

我也试过

pip install shapely
,但那又回来了
Nothing to do
.

  1. 尝试在 ec2(使用 amazon linux 2)上安装 python 3.9 并在虚拟环境中运行它,但 ec2 一直告诉我 python3.9 是一个未知命令。我以前不得不与层打架,但这似乎是迄今为止最臭名昭着的。

  2. 我还注意到,通过运行“pip3 install geos”,我可能安装了错误的版本,所以我尝试为 geos 3.9 安装一个 tar.bz2,并像我从互联网上找到的那样安装它:

wget http://download.osgeo.org/geos/geos-3.9.0.tar.bz2

tar xvfj geos-3.9.0.tar.bz2

cd geos-3.9.0

./configure

make

sudo make install

但这给了我这个奇怪的错误:

/bin/mkdir -p '/usr/local/lib'

/bin/sh ../libtool   --mode=install /bin/install -c   libgeos.la
'/usr/local/lib'
   
libtool:安装:
libgeos.la' is not a valid libtool archive

libtool: install: Try 
libtool --help --mode=install' 了解更多信息。
   
make[4]: *** [install-libLTLIBRARIES] Error 1
   
make[4]: Leaving directory
/usr/python/python/geos-3.9.0/src'

make[3]: *** [install-am] Error 2

make[3]: Leaving directory 
/usr/python/python/geos-3.9.0/src'
   
make[2]: *** [install-recursive] Error 1
   
make[2]: Leaving directory
/usr/python/python/geos-3.9.0/src'

make[1]: *** [install-recursive] Error 1

make[1]: Leaving directory 
/usr/python/python/geos-3.9.0'
   
make: *** [install] Error 2`

  1. 我什至从 libgeos 网站上找到了通过以下方式安装它的建议
    sudo yum install -y amazon-linux-extras

    sudo amazon-linux-extras enable epel

    sudo yum search geos

    sudo yum install geos geos-devel

但是返回的是没有什么可以从“geos”或“geos-devel”的额外安装。

有没有人成功创建了一个或者有什么建议我可以尝试?

linux aws-lambda shapely amazon-linux-2 geos
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.