【发布时间】:2019-03-11 10:12:05
【问题描述】:
我写了三个 Python 模块,其中两个是独立的,但最后一个依赖于两个独立的模块。例如,考虑以下结构
myProject/
subpackage_a/
__init__.py
...
subpackage_b/
__init__.py
...
mainpackage/
__init__.py
...
mainpackage 依赖于subpackage_a 和subpackage_b,其中subpackage_a 和subpackage_b 可以独立使用。换句话说,在mainpackage 中,有对subpackage_a 和subpackage_b 的引用。简而言之,我希望用户能够在不调用mainpackage 的情况下执行from myProject import subpackage_a 并开始执行subpackage_a.subfunction(args)。我还希望用户使用from myProject import mainpackage 并开始使用mainpackage.mainfucntion(args),其中mainpackage.mainfucntion 将调用subpackages 中的函数。
我了解了命名空间打包。但是,我在涉及依赖项的命名空间包上找不到任何东西。如果有更好的解决方案,我不必使用命名空间打包。我能得到一些关于我应该寻找什么的建议吗?
【问题讨论】:
-
如果
subpackage_a和subpackage_b是独立的,为什么要让它们成为子包而不是独立的库?
标签: python namespaces package setuptools