诗歌添加遗产要求

问题描述 投票:0回答:1

我面临着极地遗留问题。你可以发现有(至少)两个版本的极坐标:

第二个版本是旧版本,如自述文件中所示:

您希望 Polars 在旧 CPU 上运行吗(例如 2011 年之前的 CPU)?安装 pip install Polars-lts-cpu。这个 Polars 项目是在没有 avx 目标功能的情况下编译的。

请注意,这两个模块都“称为”极地。我的意思是,两者都是通过运行

import polars
导入的:同时安装两者可能会造成麻烦。

问题是,您如何实现新包的要求?

我看到两种处理方法:

  • 一个是(显然)发布你自己的包的两个版本,有两个不同的要求;
  • 另一个会利用额外的要求(我完全不确定这是否可行)。

当尝试附加依赖项的声明时,我最终在 pyproject.toml 中得到了这个:

[tool.poetry.dependencies]
python = "^3.8"
polars = { version = "^0.18.5", optional = true }
polars-lts-cpu = { version = "^0.18.5", optional = true }

[tool.poetry.extras]
standard = ["polars"]
legacy = ["polars-lts-cpu"]
  1. 这有效吗? (我不是 100% 确定,因为我无法在我的机器上安装 Polars-lts-cpu 并检查它,但这无关);
  2. 如果我发布了软件包,但有人使用
    pip install my_package --all-extras
    错误地安装了:
  • 他/她最终会得到哪个极地?
  • pyproject 中的依赖顺序重要吗?
  • 如果顺序很重要,我可以在
    tool.poetry.dependencies
    中设置“极性”,同时保持极性-lts-cpu作为可选(从而在调用
    pip install my_package[legacy]
    时“覆盖”极性)吗?
  1. 你能完全阻止
    --all-extras
    吗?
python python-poetry legacy
1个回答
0
投票

目前这还不是解决方案。但我刚刚在 Polars 存储库中创建了一个增强请求:https://github.com/pola-rs/polars/issues/12880

不同的模块名称(

polars_lts_cpu
)将是一个更方便的解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.