2017-02-15 106 views
0

为什么我有一个 '未定义bdir模块' 的错误,这里是我的目录,无法导入模块在Python

a.py

bdir-> bdir> module.py

在a.py

from bdir import * 
+0

是顶级bdir中的a.py? – 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的知道哪些文件夹是可以用012来导入包。这里的documentation

__init__.py文件都需要使Python视该 目录为一个包;这样做是为了防止 具有通用名称(例如字符串)的目录从无意中隐藏有效模块,这些模块在模块搜索 路径后面(更深)发生。在最简单的情况下,__init__.py可以只是一个空文件,但 它也可以执行包的初始化代码或设置变量的 __all__变量。