首页 > 解决方案 > 诗歌:如何发布针对多个 Python 版本的项目包?

问题描述

我有一个项目我想发布为针对两个 Python 版本 (3.6 和 3.8)的包。

我的理解:

我不明白的是:如何为多个 Python 版本发布同一个包?我不能是唯一一个有这个用例的人,对吧?

编辑

做更多的挖掘,我发现这个https://python-poetry.org/docs/versions/#multiple-constraints-dependencies看起来可能是相关的。

这是上面链接中的示例。

[tool.poetry.dependencies]
foo = [
    {version = "<=1.9", python = "^2.7"},
    {version = "^2.0", python = "^3.4"}
]

我还发现您可以使用poetry add这样的方式指定 Python 版本...

poetry add cleo --python 3.6.10

像这样添加依赖项pyproject.toml...

cleo = {version = "^0.8.1", python = "3.6.10"}

去实验看看这是否有效。

标签: python-packagingpython-poetry

解决方案


你可能需要在你的pyproject.toml

[tool.poetry.dependencies]
python = '3.6 || 3.8'

但我不确定确切的符号,它有点模糊。

它似乎生成了setup.py以下内容:

'>=3.6, !=2.7.*, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.7.*'

所以这将包括3.9,3.10等,这是不正确的。


推荐阅读