我正在尝试将 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!
发布评论
评论(1)
康达的食谱看起来不错。实际上是上游包损坏了,如
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 thesetup.py
are all installed. However, the v3.0.0 release lists apytables
package, which is not a valid PyPI package. Instead, this should have been simplytables
.Perhaps, this confusion arose because in the Conda ecosystem the Python package
tables
goes by the namepytables
. 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 haver-
prefixed). So, in the Conda recipe one indicates the Conda package name (pytables
), butpip check
will verify that this actually makes thetables
module available.