无法导入模块在Python
问题描述:
答
将__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的知道哪些文件夹是可以用012来导入包。这里的documentation:
的
__init__.py
文件都需要使Python视该 目录为一个包;这样做是为了防止 具有通用名称(例如字符串)的目录从无意中隐藏有效模块,这些模块在模块搜索 路径后面(更深)发生。在最简单的情况下,__init__.py
可以只是一个空文件,但 它也可以执行包的初始化代码或设置变量的__all__
变量。
是*bdir中的a.py? – ToxicTeacakes
a.py与第一个bdir相同,第二个bdir得到/__init__.py, –
哪个'bdir'?第一个还是第一个呢? –