【发布时间】:2020-08-13 06:05:18
【问题描述】:
我正在使用 Poetry 构建一些命名空间包。每个包的目录结构都是一样的:
package_bbb
pyproject.toml
aaa
bbb
myservice.py
__init__.py
__init__.py
使用 Poetry 我可以构建一个轮子,安装它并使用包:
from aaa.bbb import myservice
我的问题发生在我开始构建第二个包时,它需要第一个作为依赖项。
结构保持不变:
package_ccc
pyproject.toml
aaa
ccc
mydata.py
__init__.py
__init__.py
在诗歌中,我将第一个作为依赖项添加:
poetry add package_bbb
该包将安装(来自实习生存储库)在生成的 virtualenv 中并添加到 pyproject.toml。
为第二个包生成的轮子也是完美的。第一个包会被 pip 作为依赖安装。
问题出在开发过程中:如果我尝试,例如在 mydata.py 中,从第一个包中导入一些东西:
from aaa.bbb import myservice
我没有找到一个模块。我认为这是因为我有 2 个 aaa 命名空间:一个在 virtualenv 中,一个在项目根目录中。第二个优先,没有aaa.bbb。
我是否遗漏了包结构中的某些内容,或者有办法避免这种“命名空间冲突”?
非常感谢您的帮助!
【问题讨论】:
标签: python python-poetry