2011-05-25 5 views
1

У меня есть файл:питона относительного импорт странность

STARTDIR/module/submodule/config.py 

У меня есть еще один файл:

STARDIR/utils/filesys/getAbsPath.py 

Почему эта линия работа, в config.py?

from ..utils.filesys import getAbsPath 

Похоже .. относится к module, не STARTDIR. Существует utils в module на всех. На самом деле, делать

from .. import utils 

дает

ImportError: cannot import name utils 
+0

Что ваш путь питона? (import sys; print sys.path) –

ответ

4

Это должно работать:

from ...utils.filesystem import getAbsPath 

Это потому, что:

  • from . import … импорт из STARTDIR/module/submodule/
  • from .. import … импорт из STARTDIR/module/
  • from ... import … импорт из STARTDIR/
+0

не будет, так как я начинаю свой скрипт в «STARTDIR» (так что это будет за пределами ошибки импорта модуля верхнего уровня). но я переделал свой код для работы. – Claudiu

+0

Что значит «начиная с моего скрипта»? Например, поскольку STARTDIR не является модулем Python? –

+0

да. сценарий, который я запускаю, находится в 'STARTDIR/run.py'. даже если есть «STARTDIR/__ init __. py',« STARTDIR »не будет модулем. – Claudiu

Смежные вопросы