Почему я, имеющий 'неопределенного модуля bdir' ошибку, вот мой каталог,Невозможно импортировать модуль в Python
a.py
bdir-> bdir> module.py
в a.py
from bdir import *
Почему я, имеющий 'неопределенного модуля bdir' ошибку, вот мой каталог,Невозможно импортировать модуль в Python
a.py
bdir-> bdir> module.py
в a.py
from bdir import *
Поместите __init__.py
файл (даже пустой) в папку bdir.
Любая папка без файла __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 *
Вы должны создать __init__.py
файл, который, как Python знает, какие папки пакеты, которые могут быть импортированы с помощью import
. Вот documentation:
В
__init__.py
файлы необходимы, чтобы Python лечить каталоги как содержащие пакеты; это делается для предотвращения каталогов с общим именем, например строки, из непреднамеренно , скрывающих действующие модули, которые происходят позже (глубже) по поиску модуля . В простейшем случае__init__.py
может быть просто пустым файлом, но он также может выполнить код инициализации для пакета или задать переменную__all__
.
a.py на верхнем уровне bdir? – ToxicTeacakes
a.py на том же уровне, что и первый bdir, второй bdir получил /__init__.py, –
который 'bdir'? первый или один под ним? –