程序问答   发布时间:2022-05-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Poetry:如何发布针对多个 Python 版本的项目包? 编辑大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Poetry:如何发布针对多个 Python 版本的项目包? 编辑?

开发过程中遇到Poetry:如何发布针对多个 Python 版本的项目包? 编辑的问题如何解决?下面主要结合日常开发的经验,给出你关于Poetry:如何发布针对多个 Python 版本的项目包? 编辑的解决方法建议,希望对你解决Poetry:如何发布针对多个 Python 版本的项目包? 编辑有所启发或帮助;

我有一个项目,我想将其发布为面向两个 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.6 || 3.8'

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

它似乎生成了一个 setup.py,其内容如下:

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

所以这将包括 3.93.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,请注明来意。
标签:Python编辑