ОБНОВИТЬ:
Если это тоже поможет. Имею 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
Я знаю, что это проблема с каталогом, но я не устанавливал ничего необычного. Я установил libspatialindex 1.8.5 с помощью .configure; делать; сделать установку; ldconfig; не больше не меньше.
Я могу создавать и выполнять, если изменю
rt = ctypes.CDLL(os.path.join(sys.prefix, 'lib', lib_name))
к
rt = ctypes.CDLL(os.path.join(sys.prefix, 'local/lib', lib_name))
Однако Rtree провалит 3 из 6 тестов.
ОРИГИНАЛ:
Я пытаюсь установить модуль Rtree на python 2.6.6, однако 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);
}
Однако когда я редактировал index.py в Rtree и получаю версию 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. Заранее спасибо.
Сейчас будет закрыто. Решено с установкой r-tree 0.6, которому требуется только пространственный индекс 1.5.0+
rtree будет тест 5/6 пройден. На данный момент мой основной сценарий работает, но со временем мне нужно будет помнить, что это может вызвать проблемы в долгосрочной перспективе.