PyDev: неверный путь автозаполнения импорта в том же каталоге

1

Я запускаю PyDev 2.2.3 на Aptana 3.0

Следующий примерный проект похож на мой текущий рабочий проект:

  \project-dir
            \lib
            \main

В lib у меня есть reader.py, содержащий базовый класс Reader (объект) и rssreader.py, содержащий RSSReader (Reader).

Я бы ожидал, что PyDev при запуске Fix/Order Imports добавит строку в rssreader.py, говоря

from reader import Reader

вместо этого он автогенерирует

from lib.reader import Reader

Есть идеи?

Теги:
pydev
code-completion
aptana

1 ответ

0
Лучший ответ

Это связано с тем, как настроен ваш PYTHONPATH в вашем проекте Pydev.

Если выглядит так, как ваш PYTHONPATH содержит только project-dir, поэтому Pydev автоматически имитирует, поэтому он делает from lib.reader import Reader.

Если вы хотите, чтобы from reader import Reader, вам нужно поставить PYTHONPATH в каталог project-dir/lib (предпочтительно перед каталогом project-dir/).

  • 0
    Является ли это желаемым поведением, вместо того, чтобы смотреть на относительный путь, когда 2 .py находятся в одном каталоге?
  • 0
    @SjaakTrekhaak: часто предпочтительнее использовать абсолютный импорт в python, а не относительный (фактически это то, что выбирает PyDev). В python вы можете использовать относительный импорт from .reader import Reader (как описано в PEP328 )

Ещё вопросы

Сообщество Overcoder
Наверх
Меню