我一直在尝试为 Lambda 创建一个层,它允许我在运行时 python 3.9 中使用 shapely。出于某种原因,lambda 一直返回错误:
lambda_function': No module named 'shapely.lib
所以我的 .zip 文件可能有问题。我安装在路径
shapely.zip/python/..
这是我到目前为止所做的:
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
.
尝试在 ec2(使用 amazon linux 2)上安装 python 3.9 并在虚拟环境中运行它,但 ec2 一直告诉我 python3.9 是一个未知命令。我以前不得不与层打架,但这似乎是迄今为止最臭名昭着的。
我还注意到,通过运行“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`
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”的额外安装。
有没有人成功创建了一个或者有什么建议我可以尝试?