2017-02-15 5 views
0

Почему я, имеющий 'неопределенного модуля bdir' ошибку, вот мой каталог,Невозможно импортировать модуль в Python

a.py

bdir-> bdir> module.py

в a.py

from bdir import * 
+0

a.py на верхнем уровне bdir? – ToxicTeacakes

+0

a.py на том же уровне, что и первый bdir, второй bdir получил /__init__.py, –

+0

который 'bdir'? первый или один под ним? –

ответ

0

Поместите __init__.py файл (даже пустой) в папку bdir.

0

Любая папка без файла __init__.py внутри папки не считается модулем. Кроме того, если вы хотите, чтобы import * из модуля, убедитесь, что на самом деле импортировать вещи, которые вам нужны, в __init__.py или объявить список __all__.

Кроме того, если вы хотите сделать импорт , что означает, что вы хотите импортировать файл из пакета, в котором находится данный модуль, то вы относительный импорт. Так, например, если у вас есть:

bdir 
    - bdir 
    - __init__.py 
    - module.py 
    - a.py 

Для того чтобы импортировать что-либо из bdir.module, вы должны импортировать его как так, если вы находитесь в a.py:

from .module import * 

Если вне bdir модуля затем:

from bdir.module import * 
0

Вы должны создать __init__.py файл, который, как Python знает, какие папки пакеты, которые могут быть импортированы с помощью import. Вот documentation:

В __init__.py файлы необходимы, чтобы Python лечить каталоги как содержащие пакеты; это делается для предотвращения каталогов с общим именем, например строки, из непреднамеренно , скрывающих действующие модули, которые происходят позже (глубже) по поиску модуля . В простейшем случае __init__.py может быть просто пустым файлом, но он также может выполнить код инициализации для пакета или задать переменную __all__.