我正在尝试在模块名称空间中包含子名称空间。 (我正在尝试遵循packaging namespace packages上的文档)
project_1/
│ └── namespace
| ├── __init__.py #declare_namespace
│ └── subnamespace
│ ├── __init__.py #declare_namespace
│ └── module_1
│ ├── __init__.py
│ └── __main__.py
└── setup.py
project_2/
│ └── namespace
| ├── __init__.py #declare_namespace
│ └── subnamespace
│ ├── __init__.py #declare_namespace
│ └── module_2
│ ├── __init__.py
│ └── __main__.py
└── setup.py
我的setup.py
和project_1
中的project_2
文件如下:
#setup.py
setup(
...
packages=find_packages(),
namespace_packages=[namespace.subnamespace]
...
)
此外,我在其中声明名称空间的__init__.py
模块如下:
#__init__.py
__import__('pkg_resources').declare_namespace(__name__)
不幸的是,我尝试运行时收到moduleNotFoundError
:
import namespace.subnamespace.module_1
在python模块中是否可以有嵌套的名称空间?还是以这种方式设置项目时,不可避免发生名称空间冲突?