我目前正在拆分较小包装中的大包装。我想保留我用于大型整体软件包的相同API。
包裹布局类似于:
company/ _models/ __init__.py model1.py model2.py models.py __init__.py
company._models/__init__.py
从[{1}}和model1.py
导入模型,model2.py
有models.py
此结构允许我通过from ._models import *
访问所有导出的模型。
我想要做的是能够使用命名空间包将其拆分为更小的包,但保留相同的API。所以我会有两个类似于以下布局的包
# package1 company/ _models/ model1.py # package2 company/ _models. model2.py
我对命名空间包的理解是我可以让两个包重叠,但由于company.models
文件中没有任意代码,我不能拥有__init__.py
行
我想做什么呢?
我看到的一个可能的解决方案是,它们不是单独的“软件包”,而是更像是核心软件包的插件,我会有一些import
函数可以添加插件的导出到核心包的命名空间。