Python 如何在Synology NAS上安装GEOS(或libgeos)?
我浏览过互联网,浏览过StackOverflow、GitHub、SynoCommunity等等,但我似乎找不到我问题的黄金答案 Q:如何在我的Synology上安装GEOS(或libgeos? 背景故事:Python 如何在Synology NAS上安装GEOS(或libgeos)?,python,python-3.x,synology,geos,Python,Python 3.x,Synology,Geos,我浏览过互联网,浏览过StackOverflow、GitHub、SynoCommunity等等,但我似乎找不到我问题的黄金答案 Q:如何在我的Synology上安装GEOS(或libgeos? 背景故事: 我的SO和我已经制定了一个Python3计划来帮助我们寻找房子。它从各种API中提取一些关于公共交通通勤时间和平均交通持续时间的数据,以编制邮政编码列表,计算这些邮政编码周围的区域,并将其提供给全国性的房屋登记服务,以便在地图上刮出结果 因此,我们知道这个程序是有效的,在我们基于windows
我的SO和我已经制定了一个Python3计划来帮助我们寻找房子。它从各种API中提取一些关于公共交通通勤时间和平均交通持续时间的数据,以编制邮政编码列表,计算这些邮政编码周围的区域,并将其提供给全国性的房屋登记服务,以便在地图上刮出结果 因此,我们知道这个程序是有效的,在我们基于windows的台式机或macos笔记本电脑上运行它,我们就能得到我们想要的东西;加载到浏览器中的HTML文件;显示带有一组标记的地图,这些标记显示了列出待售的房屋 我们在python中使用的模块是shapely和pickle。GEOS(或libgeos)是shapely对c库的依赖性,正是这种依赖性让我很难在NAS上安装 为什么是我的NAS?因为我的NAS的某些部分可以连接到internet,所以我可以通过手机访问这些部分,这样我就可以在晚上不需要打开台式机或笔记本电脑的时候在NAS上安排刮板 技术环境:
天气学DS1813+
英特尔Atom D2700(cedarview)
DSM 6.2.2-24922
蟒蛇3.5.6-8 我已经安装了pip 通过pip和pickle完美安装 我找到了什么?
如果相信互联网的老者,GEOS的安装是通过你的包管理器运行的,grea-哦,等等,Synology只有一个GUI,没有libgeos。好的,我可以安装ipkg,但是那里也没有libgeos Synology社区包中有一个很棒的Debian Chroot实现!libgeos有一个本机debian安装可用!但无论出于何种原因(证据相互矛盾),这个chroot也被拉了出来,最初的开发人员根据请求提供了各种版本。但是,嘿,有一个cedarview版本!这就要求在错误中安装Python2.7.6-8或更高版本。但是等等。。是不是3“或更高?”是的,还是没有金子。所以我安装了Python2.7.6——仍然没有乐趣 最后,我走了很长的一段路去认识Docker,这样我就可以做我自己的,然后把事情搞砸了,如果我再见到Docker的话 还在读书吗?以下是我在运行程序时遇到的错误:
File "/volume1/@appstore/py3k/usr/local/lib/python3.5/site-packages/shapely/geos.py", line 76, in <module>
free = load_dll('c').free
File "/volume1/@appstore/py3k/usr/local/lib/python3.5/site-packages/shapely/geos.py", line 56, in load_dll
libname, fallbacks or []))
OSError: Could not find lib c or load any of its variants [].
lib = find_library(libname)
dll = None
if lib is not None:
try:
LOG.debug("Trying `CDLL(%s)`", lib)
dll = CDLL(lib, mode=mode)
except OSError:
LOG.debug("Failed `CDLL(%s)`", lib)
pass
if not dll and fallbacks is not None:
for name in fallbacks:
try:
LOG.debug("Trying `CDLL(%s)`", name)
dll = CDLL(name, mode=mode)
except OSError:
# move on to the next fallback
LOG.debug("Failed `CDLL(%s)`", name)
pass
if dll:
LOG.debug("Library path: %r", lib or name)
LOG.debug("DLL: %r", dll)
return dll
else:
# No shared library was loaded. Raise OSError.
raise OSError(
"Could not find lib {0} or load any of its variants {1}.".format(
libname, fallbacks or []))