我正在评估使用 Poetry 来打包和构建桌面应用程序。
唯一的障碍是诗歌不允许两次指定相同的包。例如,我无法执行以下操作:
[tool.poetry.dependencies]
python = "^3.9"
lru-dict = {path = "./packages/lru_dict-1.1.6-cp39-cp39-win_amd64.whl"}
lru-dict = {path = "./packages/lru_dict-1.1.6-cp39-cp39-win32.whl"}
请注意,
lru-dict
包被指定了两次,唯一的区别是包构建的位数(即CPU架构)。
我知道我可以将包上传到 PyPI,并且
pip
将动态选择合适的版本。但是私人或本地套餐怎么样?
来自诗歌文档:
Poetry 通过
markers
属性支持环境标记。
其中一个标记是
platform_machine
,它是 platform.machine()
的输出。
因此,您应该能够使用不同的标记将两个条目添加到列表中:
[tool.poetry.dependencies]
python = "^3.9"
lru-dict = [
{path = "./packages/lru_dict-1.1.6-cp39-cp39-win_amd64.whl", markers = "platform_machine == 'amd64'"},
{path = "./packages/lru_dict-1.1.6-cp39-cp39-win32.whl", markers = "platform_machine == 'win32'"}
]