Как исправить ошибку "ImportError: модуль без индекса" при импорте RTree в Python?
Я пытался установить Rtree 0.7.0 из PyPI, но продолжаю получать ImportError: No module named index
когда я пытаюсь использовать это. Я скачал и запустил Rtree-0.7.0.win32.exe со страницы Загрузки, и все, кажется, установлено правильно.
Вот полное сообщение об ошибке, которое я получаю (из оболочки Python 3.2.2):
>>> from rtree import index
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
from rtree import index
File "C:\Python32\lib\site-packages\rtree\__init__.py", line 1, in <module>
from index import Rtree
ImportError: No module named index
>>> import rtree
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
import rtree
File "C:\Python32\lib\site-packages\rtree\__init__.py", line 1, in <module>
from index import Rtree
ImportError: No module named index
Сообщение об ошибке указывает, что нет модуля с именем "index", но когда я смотрю в C:\Python32\lib\site-packages\rtree\
каталог, я вижу, что это там.
Что может быть причиной того, что я до сих пор ImportError: No module named index
сообщение об ошибке, и как я могу это исправить, чтобы я мог использовать модуль RTree?
1 ответ
Кажется, полагаться на import foo
делать относительный импорт. Это было поведение по умолчанию в 2.x (начиная с 2.5 есть __future__
директива, отменяющая это). Python 3 удалил это. Поэтому сопровождающие, вероятно, даже не пытались быть 3.x-совместимыми, и установка просто сработала случайно. Соответственно, нет никаких претензий на совместимость с Python 3: Нет Programming Language :: Python :: 3
Trove классификатор, нет упоминания в документации, не использовать 2to3 в setup.py
и т. д. Если не считать исправлений rtree
чтобы исправить это, и, возможно, множество других проблем, вы не получите его на работу.