Как исправить ошибку "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\ каталог, я вижу, что это там.

Каталог пакетов 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 чтобы исправить это, и, возможно, множество других проблем, вы не получите его на работу.

Другие вопросы по тегам