我以为我理解了Python 3的模块模型,但也许不是。
我有一棵树:
root
\-- pmlr
\-- __init__.py * empty
\-- pmlr.py * full of definitions
当我在root
中,并且我从Python3 shell import pmlr
运行时,pmlr
只有这些属性(默认包__dict__
):< / p>
pmlr.__cached__ pmlr.__dir__( pmlr.__format__( pmlr.__hash__( pmlr.__lt__( pmlr.__package__ pmlr.__repr__( pmlr.__str__(
pmlr.__class__( pmlr.__doc__ pmlr.__ge__( pmlr.__init__( pmlr.__name__ pmlr.__path__ pmlr.__setattr__( pmlr.__subclasshook__(
pmlr.__delattr__( pmlr.__eq__( pmlr.__getattribute__( pmlr.__le__( pmlr.__ne__( pmlr.__reduce__( pmlr.__sizeof__(
pmlr.__dict__ pmlr.__file__ pmlr.__gt__( pmlr.__loader__ pmlr.__new__( pmlr.__reduce_ex__( pmlr.__spec__
这意味着python
认为pmlr
是包,但它无法找到任何属性。
如果我cd pmlr
和然后导入它,则会显示所有模块的属性。如果我import pmlr.pmlr
root
,则会显示所有模块的属性。
如何将我的模块从根目录导入为其文件夹(pmlr
),而不是pmlr.pmlr
?我认为__init__.py
就是这样做的。