gpt4 book ai didi

conda - 如何识别 conda 包依赖项?

转载 作者:行者123 更新时间:2023-12-03 13:41:10 29 4
gpt4 key购买 nike

对于给定的 conda包,我如何列出依赖它的包?

我最近在一个已经有 MPI (openmpi) 版本的大学集群上安装了 anaconda。 mpich2包和mpi4py与 anaconda 一起安装的软件包适用于 mpi4py 的演示,但 mpi*编译器(mpicc 等)不兼容。所以我conda remove 'd mpich2mpi4py并使用了pip安装mpi4py使用本地 MPI 安装和编译器。

我不得不四处寻找mpi4py的依赖关系,然后是 mpich2的家属,我只确定了mpi4py . 有没有一种“简单”的方法来找出取决于 mpich2 的内容? ?

最佳答案

mamba repoqueryMamba主要是 Conda 的直接替代品,它提供的额外功能之一是通过其 repoquery command 进行依赖和反向依赖查询的可靠功能。 .但是请注意,这仅适用于环境级别的关系,因此必须安装包并激活环境。
演示
请注意,这与最初的问题相距多年,所以我只是用 mpi4py 进行演示安装并使用已安装的版本。

$ mamba create -n so-mpi4py mpi4py
## installs 24 packages

$ conda activate so-mpi4py
(so-mpi4py) $ mamba repoquery whoneeds mpich
__ __ __ __
/ \ / \ / \ / \
/ \/ \/ \/ \
███████████████/ /██/ /██/ /██/ /████████████████████████
/ / \ / \ / \ / \ \____
/ / \_/ \_/ \_/ \ o \__,
/ _/ \_____/ `
|/
███╗ ███╗ █████╗ ███╗ ███╗██████╗ █████╗
████╗ ████║██╔══██╗████╗ ████║██╔══██╗██╔══██╗
██╔████╔██║███████║██╔████╔██║██████╔╝███████║
██║╚██╔╝██║██╔══██║██║╚██╔╝██║██╔══██╗██╔══██║
██║ ╚═╝ ██║██║ ██║██║ ╚═╝ ██║██████╔╝██║ ██║
╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═════╝ ╚═╝ ╚═╝

mamba (0.19.0) supported by @QuantStack

GitHub: https://github.com/mamba-org/mamba
Twitter: https://twitter.com/QuantStack

█████████████████████████████████████████████████████████████


Executing the query mpich



Name Version Build Depends Channel
────────────────────────────────────────────────────────────────────────
mpi4py 3.1.3 py310hd348148_0 mpich >=3.4,<4.0.0a0 conda-forge/osx-64
就个人而言,我通常使用树格式,与
(so-mpi4py) $ mamba repoquery whoneeds --tree mpich

mpich[3.4.2]
└─ mpi4py[3.1.3]
真实世界的例子
更多的是对其有用性的证明,我注意到我的一个 R 环境不知何故最终安装了 Python。我对此非常严格,所以我联系了 mamba repoquery whoneeds并发现:
(bioc_3_12) host:dir usr$ mamba repoquery whoneeds -t python

Executing the query python

python[3.9.2]
├─ numpy[1.20.2]
│ └─ colormath[3.0.0]
│ └─ spectra[0.0.11]
│ └─ r-rspectra[0.16_0] # <- this package is the culprit!
│ └─ r-uwot[0.1.10]
├─ networkx[2.5]
│ └─ colormath already visited
├─ certifi[2021.5.30]
│ └─ setuptools[49.6.0]
│ ├─ networkx already visited
│ └─ pip[21.0.1]
├─ python_abi[3.9]
│ ├─ numpy already visited
│ ├─ certifi already visited
│ └─ setuptools already visited
├─ colormath already visited
├─ spectra already visited
├─ decorator[4.4.2]
│ └─ networkx already visited
├─ wheel[0.36.2]
│ └─ pip already visited
├─ pip already visited
└─ setuptools already visited
原来是 r-spectra Conda Forge 中的包装配方有 misstated one of its dependencies成为 Python 包 ( spectra ) 而不是 C++ 动态库 ( spectralib )。

关于conda - 如何识别 conda 包依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26101972/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com