Python 如何在Synology NAS上安装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

我浏览过互联网,浏览过StackOverflow、GitHub、SynoCommunity等等,但我似乎找不到我问题的黄金答案

Q:如何在我的Synology上安装GEOS(或libgeos?

背景故事:
我的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 []))