“[lib] 需要 [dep],但尚未安装”在 conda-forge 原料上运行 PR 测试时,尽管在 greyskull 生成的 meta.yaml 中显式调用

发布于 2025-01-19 15:36:16 字数 1739 浏览 3 评论 0 原文

我正在尝试将 xagg 的conda-forge版本升级到最新版本(v0.3.0)。当我将原料的PR设置为conda-forge存储库中时,内置的Azure管道测试已运行,但是错误:(

import: 'xagg'
import: 'xagg'
+ pip check
xagg 0.3.0 requires pytables, which is not installed.

完整日志为在这里

奇怪的是 Pytable meta.yaml 中明确提及(通过 grayskull 和在PR更改中列出)而且,至少根据测试日志,已正确安装在测试码头环境中:

The following NEW packages will be INSTALLED:

[snip]

pytables:                  3.7.0-py310hf5df6ce_0             conda-forge

[snip]

DEBUG:urllib3.connectionpool:https://conda.anaconda.org:443 "GET /conda-forge/linux-64/pytables-3.7.0-py310hf5df6ce_0.tar.bz2 HTTP/1.1" 200 4914957

[snip]

Preparing transaction: ...working... done
Verifying transaction: ...working... done
Executing transaction: ...working... done

有人对如何解决此问题有任何建议吗? 建议在我拥有的 meta.yaml 中。

我相信这可能与这个问题,尽管对于可选包,而不是内置的包装。

感谢任何帮助!

I'm trying to upgrade the conda-forge version of xagg to the latest version (v0.3.0). The built-in Azure Pipelines tests that run when I set up a PR of the feedstock into the conda-forge repository however fail, with the error:

import: 'xagg'
import: 'xagg'
+ pip check
xagg 0.3.0 requires pytables, which is not installed.

(the full log is here)

The odd thing is that pytables is explicitly mentioned in the meta.yaml (which was generated through grayskull and is listed in the PR changes here), and, at least according to the test log, was correctly installed into the test docker environment:

The following NEW packages will be INSTALLED:

[snip]

pytables:                  3.7.0-py310hf5df6ce_0             conda-forge

[snip]

DEBUG:urllib3.connectionpool:https://conda.anaconda.org:443 "GET /conda-forge/linux-64/pytables-3.7.0-py310hf5df6ce_0.tar.bz2 HTTP/1.1" 200 4914957

[snip]

Preparing transaction: ...working... done
Verifying transaction: ...working... done
Executing transaction: ...working... done

Does anyone have any advice on how to troubleshoot this? The suggestions I've seen so far are to explicitly list the dependency in the meta.yaml, which I have.

I believe this may be a similar issue to this question, though for an optional package, not a built-in one.

Grateful for any help!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

落日海湾 2025-01-26 15:36:16

康达的食谱看起来不错。实际上是上游包损坏了,如 pip check 失败所示。

即,pip check 确保 setup.py 中列为依赖项的包均已安装。但是,v3.0.0 版本列出了一个 pytables 包,它不是有效的 PyPI 包。相反,这应该只是表格

也许,出现这种混乱是因为在 Conda 生态系统中,Python 包 tables 的名称为 pytables。这只是通用包管理器问题的一部分 - 跨语言生态系统的包存在命名空间冲突,因此需要使用前缀或其他修饰符重命名(例如,所有 CRAN 包都有 r- 前缀)。因此,在 Conda 配方中,指示 Conda 包名称 (pytables),但 pip check 将验证这实际上使 tables 模块可用。

The Conda recipe looks fine. It's actually the upstream package that was broken, as indicated by the failure of pip check.

Namely, pip check ensures that the packages listed as dependencies in the setup.py are all installed. However, the v3.0.0 release lists a pytables package, which is not a valid PyPI package. Instead, this should have been simply tables.

Perhaps, this confusion arose because in the Conda ecosystem the Python package tables goes by the name pytables. This is simply part of the issue with having a generic package manager - packages across language ecosystems have namespace collisions, and therefore get renamed with a prefix or some other modifier (e.g., all CRAN packages have r- prefixed). So, in the Conda recipe one indicates the Conda package name (pytables), but pip check will verify that this actually makes the tables module available.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文