【发布时间】:2021-05-02 20:50:46
【问题描述】:
我有一个项目我想以包的形式发布,目标是两个 Python 版本(3.6 和 3.8)。
我的理解:
- 如何使用
pyenv安装和激活不同的python版本。 - 如何获取
poetry以创建与所选 Python 版本相对应的虚拟环境。 - 如何设置
pyproject.toml以指定python 版本、管理依赖项以及使用此配置发布包。
我不明白的是:如何为多个 Python 版本发布同一个包?我不可能是唯一一个有这个用例的人吧?
- 是否需要两个
pyproject.toml文件? (每个 python 版本和一组相应的依赖项一个...) - 是否有既定的方法可以使用 Poetry 执行此操作,或者是否需要其他工具/工作流程?
编辑
做更多的挖掘,我发现了这个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"}
去试验看看是否可行。
【问题讨论】:
-
你的
pyproject.toml现在怎么样了? -
[tool.poetry.dependencies] python = "^3.8" cleo = "^0.8.1" ... [tool.poetry.dev-dependencies] pytest = "^5.4.3" 。 ..
标签: python-packaging python-poetry