4

我正在 Heroku 上部署一个 GIS 应用程序。我在我的电脑上开发了它,当我部署它时,rtree 不见了。我无法通过 pip 安装它,因为 pip 安装是错误的,正如 rtree 开发人员自己所说的那样。我怎样才能将这种依赖关系融入heroku?

4

2 回答 2

2

我知道这个问题很老,但我想我会提出我的解决方案,以防有人仍然遇到这个问题。

至少对我来说,RTree 0.9.4 的 pip 安装失败的原因是由于以下错误:

AttributeError: /app/.heroku/python/bin/python: undefined symbol: Error_GetLastErrorNum

根据 RTree ( https://github.com/Toblerity/rtree/issues/120 ) 的 pip 安装的这个已知错误,我认为这可能是由于在 heroku 服务器上未正确安装/配置 libspatialindex 的问题。

为了用 libspatialindex 解决这个问题,我在 Heroku 中添加了一个 buildpack。这个对我有用:https ://github.com/ihat/heroku-libspatialindex-buildpack.git

您仍然需要在 libspatialindex 之后添加标准的 python buildpack。

Heroku Dashboard Buildpack 安装顺序的图像

这允许 RTree 通过自动 heroku pip 安装过程为我正确安装。

于 2020-06-30T17:03:56.857 回答
0

有一个适用于 linux 的 Rtree 库(https://pypi.org/project/Rtree-linux/),它对我有用,无需使用任何 Buildpack。只需添加Rtree-linux==x.x.x您的要求。

于 2020-08-03T09:09:02.497 回答