1
我以为我理解Python 3的模块模型,但也许不是。这个Python文件夹结构有什么问题?
我有一棵树,如:
root
\-- pmlr
\-- __init__.py * empty
\-- pmlr.py * full of definitions
当我在root
,我从Python3运行shell import pmlr
,pmlr
只有这些属性(默认包__dict__
):
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
和然后导入它,所有模块的属性都会显示出来。如果我从root
我import pmlr.pmlr
,显示模块的所有属性。
如何使我的模块可以从根目录作为其文件夹(pmlr
)而不是pmlr.pmlr
?我认为__init__.py
是完成了这一点。
在'__init __。py'中使用'from .pmlr import *'。 –
@Rogalski回复,谢谢 - 我没有想到要这么做 – cat