在python命名空间包的__init__文件中导出符号

时间:2013-06-03 20:14:01

标签: python packaging

我目前正在拆分较小包装中的大包装。我想保留我用于大型整体软件包的相同API。

包裹布局类似于:

company/
    _models/
        __init__.py
        model1.py
        model2.py
    models.py
    __init__.py

company._models/__init__.py从[{1}}和model1.py导入模型,model2.pymodels.py

此结构允许我通过from ._models import *访问所有导出的模型。

我想要做的是能够使用命名空间包将其拆分为更小的包,但保留相同的API。所以我会有两个类似于以下布局的包

# package1
company/
    _models/
        model1.py
# package2
company/
    _models.
        model2.py

我对命名空间包的理解是我可以让两个包重叠,但由于company.models文件中没有任意代码,我不能拥有__init__.py

我想做什么呢?

我看到的一个可能的解决方案是,它们不是单独的“软件包”,而是更像是核心软件包的插件,我会有一些import函数可以添加插件的导出到核心包的命名空间。

0 个答案:

没有答案