Poetry打包Python命名空间包:novi_activations无法随pip安装
Python命名空间包novi_activations无法通过Poetry打包安装
背景
我开发了一个开源Python包,已发布到PyPI,使用Poetry完成打包与发布工作。src目录结构如下:
- src |- novi |- client | |- __init__.py |- core | |- __init__.py |- web | |- __init__.py |- novi_activations
novi和novi_activations均为Python命名空间包,它们的根目录下没有直接的__init__.py文件。
问题与尝试过程
- 最初的
pyproject.toml配置:
[tool.poetry] name = "novi" version = "0.4.5" description = "A simple yet powerful feature flag and multivariate testing platform built in Python" authors = ["vdevigere <vdevigere+git@gmail.com>"] readme = "README.md" packages = [ {include = "novi", from="src"}, ] include =[ {path="src/novi_activations"} ] .....
生成的tar包结构正常,novi与novi_activations都被包含在内,但用户执行pip install novi后,只有novi包被成功安装,novi_activations并未被安装。
- 尝试将novi_activations加入packages配置:
[tool.poetry] name = "novi" version = "0.4.5" description = "A simple yet powerful feature flag and multivariate testing platform built in Python" authors = ["vdevigere <vdevigere+git@gmail.com>"] readme = "README.md" packages = [ {include = "novi", from="src"}, {include = "novi_activations", from="src"} ] ......
此时直接报错,提示novi_activations不是一个包。
我知道可以通过在novi_activations目录下添加虚拟包的方式解决问题,但不想采用这种方案,求其他可行的解决办法。
内容的提问来源于stack exchange,提问作者VDev
相关产品推荐
相关产品推荐

