问题描述
我想创建一个可以通过插件扩展的程序。我有一个结构,当所有软件包都安装好时,它似乎正在工作,但我不确定我在做什么实际上是受支持的: 核心功能将由“普通”包提供,插件通过命名空间包提供。 这是一个显示结构的最小示例:
- 00_core_package 用于核心逻辑,并且不是命名空间包。
- 01_foo_plugin 和 02_bar_plugin 作为两个示例包,它们是命名空间包,命名空间根 (
myprog
) 与核心包相同。
当我通过 pip install .
在本地使用这三个包时,似乎一切正常,但我不确定这是否真的是命名空间包支持的用例。我的担忧是:
- Python Packaging User Guide 和引用的 example project 仅描述了两个子包都是真正的命名空间包的用例,即“根”命名空间本身不是一个独立的包。它还指出:
使用命名空间包的每个发行版都省略 __init__.py
或使用 pkgutil 样式的 __init__.py
,这一点非常重要。如果任何分发没有,都会导致命名空间逻辑失败,其他子包将无法导入。
PyCharm 中的导入错误是我在这里做错的第一个迹象,还是 PyCharm 本身的错误?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)