2014-09-22 3 views
0

У меня есть настройки проекта, как это (скажите мне, если это не так):питон - модуль импорта в том же каталоге

project/ 
    module_1/ 
     __init__.py 
     foo.py 
    module_2/ 
     __init__.py 
     bar.py 

В foo.py:

from module_2 import bar 

я получаю:

ImportError: No module named module_2 

Однако, если я изменить настройки проекта это:

project/ 
    module_1/ 
     __init__.py 
     foo.py 
     module_2/ 
      __init__.py 
      bar.py 

Это работает. Как это исправить?

Благодаря

+0

Вы импортирования время в foo.py? – lmc

+0

Да, это происходит, если оператор import находится в module_one/foo.py или module_one/__ init__.py –

+0

Поскольку модуль2 находится на одном шаге вверх, пока вы находитесь в foo. Вы должны написать бар импорта ../module2. Обратите внимание: ../ – lmc

ответ

0

Попробуйте относительный импорт:

from ..module_2 import bar 

Тогда вы ссылаетесь на него, как только бар: bar.method().

EDIT: добавить __main__.py к project и запустить его с одного уровня вверх, с

python -m project 
+1

Ошибка при попытке относительного импорта из другого пакета. –

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