大佬教程收集整理的这篇文章主要介绍了Poetry:如何发布针对多个 Python 版本的项目包? 编辑,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个项目,我想将其发布为面向两个 Python 版本(3.6 和 3.8)的包。
我的理解:
pyenv
安装和激活不同的 Python 版本。poetry
创建与所选 Python 版本相对应的虚拟环境。pyproject.toml
以指定 Python 版本、管理依赖项以及使用此配置发布包。我不明白的是:如何为多个 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"}
去试验一下,看看这是否有效。
[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
等,这是不正确的。
没有。您无需为您所针对的每个 Python 版本创建多个 pyproject.toml
文件或以其他方式创建单独的工作流(对于这种特定情况,至少针对类似版本)。
你可以简单地使用依赖语法来说明你想要像这样定位>=3.6
[tool.poetry.dependencies]
python = '^3.6'
然后类似的添加依赖...
poetry add <dependency> python ^3.6
结果是这样的......
[tool.poetry.dependencies]
python = '^3.6'
cLeo = {version = "^0.8.1",python = "^3.6"}
pyyaml = {version = "^5.4.1",python = "^3.6"}
...
这奏效了,不过我进一步做了一些不那么具体的依赖项,以避免在某些主机上不兼容。
pyyaml = {version = "^5.0",python = "^3.6"}
...
以上是大佬教程为你收集整理的Poetry:如何发布针对多个 Python 版本的项目包? 编辑全部内容,希望文章能够帮你解决Poetry:如何发布针对多个 Python 版本的项目包? 编辑所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。