我正在 Heroku 上部署一个 GIS 应用程序。我在我的电脑上开发了它,当我部署它时,rtree 不见了。我无法通过 pip 安装它,因为 pip 安装是错误的,正如 rtree 开发人员自己所说的那样。我怎样才能将这种依赖关系融入heroku?
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 安装过程为我正确安装。
有一个适用于 linux 的 Rtree 库(https://pypi.org/project/Rtree-linux/),它对我有用,无需使用任何 Buildpack。只需添加Rtree-linux==x.x.x
您的要求。