小编Mar*_*lvi的帖子

在Python中,是否可以在包级别公开子包中的模块?

我有以下难题.我试图在父包级别公开包的子包中的一些模块.

文件夹结构基本上是这样的:

script.py
package/
    __init__.py
    module1.py
    subpackage/
        __init__.py
        submodule1.py
        submodule2.py
Run Code Online (Sandbox Code Playgroud)

script.py我目前要编写的文件中

from package.subpackage.submodule1 import foo
Run Code Online (Sandbox Code Playgroud)

如果我想从导入一些submodule1.py文件,但我希望能够揭露文件submodule1.pysubmodule2.py在封装级,让我所有的进口可以看起来像

from package.module1 import bar
from package.submodule1 import foo
from package.submodule2 import goo
Run Code Online (Sandbox Code Playgroud)

请注意,我不希望暴露bar,foogoopackage水平,即

from package import bar
from package import foo
Run Code Online (Sandbox Code Playgroud)

因为在我的情况下,模块之间的分离仍然很重要.

这甚至可能吗?__init__.py文件中有诀窍吗?

谢谢!

python python-import python-2.7 python-packaging

4
推荐指数
2
解决办法
2370
查看次数