在 pydroid 上安装 Shapely 和 GDAL 的错误
Posted
技术标签:
【中文标题】在 pydroid 上安装 Shapely 和 GDAL 的错误【英文标题】:Installing Error of Shapely and GDAL on pydroid 【发布时间】:2020-03-15 14:00:12 【问题描述】:Pydroid 是一款适合初学者和其他人在 android 上运行 python 的好应用程序。我可以毫无问题地安装许多有用的库,但是我不明白为什么无法安装诸如GDAL、Shapely、Pyproj 之类的库。
安装错误:
ERROR: Command errored out with exit status 1:
command: /data/user/0/ru.iiec.pydroid3/files/arm-linux-androideabi/bin/python3.6 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/data/data/ru.iiec.pydroid3/cache/pip-install-1glqlnnp/shapely/setup.py'"'"'; __file__='"'"'/data/data/ru.iiec.pydroid3/cache/pip-install-1glqlnnp/shapely/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /data/data/ru.iiec.pydroid3/cache/pip-install-1glqlnnp/shapely/pip-egg-info
cwd: /data/data/ru.iiec.pydroid3/cache/pip-install-1glqlnnp/shapely/
Complete output (11 lines):
Failed `CDLL(libgeos_c.so.1)`
Failed `CDLL(libgeos_c.so)`
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/data/data/ru.iiec.pydroid3/cache/pip-install-1glqlnnp/shapely/setup.py", line 80, in <module>
from shapely._buildcfg import geos_version_string, geos_version, \
File "/data/data/ru.iiec.pydroid3/cache/pip-install-1glqlnnp/shapely/shapely/_buildcfg.py", line 167, in <module>
fallbacks=['libgeos_c.so.1', 'libgeos_c.so'])
File "/data/data/ru.iiec.pydroid3/cache/pip-install-1glqlnnp/shapely/shapely/_buildcfg.py", line 161, in load_dll
libname, fallbacks or []))
OSError: Could not find library geos_c or load any of its variants ['libgeos_c.so.1', 'libgeos_c.so']
----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
/storage/emulated/0 $
任何帮助将不胜感激。我正在运行 Android Nougat 7.0 版和 Pydroid 3 (python3)。
【问题讨论】:
【参考方案1】:您提到的三个 python 模块都依赖于 C 库,即它们不是纯 python,而是为较低级别的函数提供接口。具体来说,上面提到的三个 python 模块需要这些库:
-
GDAL 是 GDAL 库的工具集
Shapely,正如您的错误消息所暗示的,取决于 Geos
pyproj 是proj 的接口
因此,您需要为您的系统自行下载和编译这些库(或查找预编译的二进制文件,但这听起来不太适合您的设置)。只有这样你才能安装和使用相应的python模块。
【讨论】:
能否告诉我如何为我的 android 编译此类库,例如教程或 sthg。用英语或德语。我试图搜索并搜索在 pydroid 上安装此类库,但我没有找到它:(,谢谢你给我的信息以上是关于在 pydroid 上安装 Shapely 和 GDAL 的错误的主要内容,如果未能解决你的问题,请参考以下文章
shapely 和 matplotlib 多边形点在地理位置上不准确