1

我有一个项目,我想重组以使用 Python 的本机隐式命名空间。我有我想像这样交互的代码:

from mypackage import Foo
from mypackage.admin import Bar

admin子包位于完全独立的存储库中。这些文件的组织方式如下:

mypackage
│
└─ core
   │  __init__.py
   │  file.py
   │  foo (contains class 'Foo')
   │  ...

同样的子包:

mypackage
│
└─ admin
   │  __init__.py
   │  bar.py (contains class Bar)
   │  another_folder
   │ ...

我必须将原始包中的所有内容放入顶级core子包中,以使共享命名空间工作:

from mypackage.core import Foo
from mypackage.admin import Bar

有没有一种方法可以构建它,以便我可以core在顶层访问我的包中的所有内容,如下所示?

from mypackage import Foo
from mypackage.admin import Bar

import在文件中添加了适当的东西__init__.py,但我不知道如何将对象拉入顶级命名空间(如果它甚至受支持的话)。

4

1 回答 1

0

由于这个几乎是重复的问题,事实证明这在使用命名空间时是不可能的。

于 2020-07-17T20:55:33.763 回答