更新:
如果这也有帮助的话。我有 root 访问权限。似乎我不是唯一遇到此问题的人,但有几个人遇到了此问题 https://github.com/ioos/conda-recipes/pull/198 我已按照链接中记录的相应更新了我的 core.py,但是我收到了一个新的错误。
python setup.py build
Traceback (most recent call last):
File "setup.py", line 4, in <module>
import rtree
File "/home/ricson/Rtree-0.8.2/rtree/__init__.py", line 1, in <module>
from .index import Rtree
File "/home/ricson/Rtree-0.8.2/rtree/index.py", line 6, in <module>
from . import core
File "/home/ricson/Rtree-0.8.2/rtree/core.py", line 113, in <module>
rt = ctypes.CDLL(os.path.join(sys.prefix, 'lib', lib_name))
File "/usr/lib64/python2.6/ctypes/__init__.py", line 353, in __init__
self._handle = _dlopen(self._name, mode)
OSError: /usr/lib/libspatialindex_c.so: cannot open shared object file: No such file or directory
我确实知道这是一个目录问题,但我没有安装任何不寻常的东西。我使用 .configure; make; make install; ldconfig 安装了 libspatialindex 1.8.5;不多不少。
我能够构建和执行,如果我改变
rt = ctypes.CDLL(os.path.join(sys.prefix, 'lib', lib_name))
到
rt = ctypes.CDLL(os.path.join(sys.prefix, 'local/lib', lib_name))
然而,Rtree 将在 6 次测试中失败 3 次。
原来的:
我正在尝试在 python 2.6.6 上安装 Rtree 模块,但是 setup.py 坚持要求我安装 libspatialindex 1.6,而我显然刚刚安装了 libspatialindex 1.8.5
我是否错过了一些步骤? libspatialindex 所有者规定的以下脚本确实返回了 1.8.5 (https://github.com/libspatialindex/libspatialindex/wiki/1.-Getting-Started)
#include <iostream>
#include <spatialindex/capi/sidx_api.h>
using namespace std;
using namespace SpatialIndex;
int main(int argc, char* argv[])
{
char* pszVersion = SIDX_Version();
fprintf(stdout, "libspatialindex version: %s\n", pszVersion);
fflush(stdout);
free(pszVersion);
}
但是当我在 Rtree 中编辑 index.py 时,我得到的是 1.6.1 版本,而我显然已经安装了 1.8.5
python ../setup.py
core.rt.SIDX_Version() 1.6.1
Traceback (most recent call last):
File "../setup.py", line 4, in <module>
import rtree
File "/home/ricson/Rtree-0.8.2/rtree/__init__.py", line 1, in <module>
from .index import Rtree
File "/home/ricson/Rtree-0.8.2/rtree/index.py", line 39, in <module>
raise Exception("This version of Rtree requires libspatialindex 1.7.0 or greater")
Exception: This version of Rtree requires libspatialindex 1.7.0 or greater
如果需要将其移至 serverfault,请告知我。提前致谢。
答案1
暂时将其设置为关闭。已安装 r-tree 0.6,只需要 spatialindex 1.5.0+
rtree 将通过 5/6 的测试。我的基本脚本目前可以工作,但最终需要记住,从长远来看,这可能会造成问题。