从 Conda 获取已安装的包名称

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

问题

在设置存储库时,我经常会从某人通过管道

conda list
到requirements.txt 文件中获得许多包的列表。鉴于我有不同的固定软件包(例如 python、cuda),我经常需要安装相同的软件包而不附带指定的版本。如果您只需向 Conda 提供软件包名称列表,Conda 就能很好地找出哪些软件包版本与您固定的软件包兼容。想象一下,有人在我们的共享计算机上设置了 conda env,而我想根据他们的环境构建我自己的环境。有没有一个解决方案1(也许是用于构建这些
conda list
输出的曼巴/康达属性),我可以利用它来获取要安装的软件包列表(不包含其版本和频道等)?

当前

截断的

conda list
输出示例:

...
libstdcxx-ng              13.1.0               hfd8a6a1_0    conda-forge
libuuid                   2.38.1               h0b41bf4_0    conda-forge
libxml2                   2.11.4               h0d562d8_0    conda-forge
libzlib                   1.2.13               hd590300_5    conda-forge
lz4-c                     1.9.4                hcb278e6_0    conda-forge
lzo                       2.10              h516909a_1000    conda-forge
...
pluggy                    1.2.0              pyhd8ed1ab_0    conda-forge
psutil                    5.9.5           py311h2582759_0    conda-forge
...

所需输出:

... libstdcxx-ng libuuid libxml2 libzlib lz4-c lzo ... pluggy psutil ...

1 理想情况下,这不会涉及复制粘贴或正则表达式

package conda environment mamba
1个回答
0
投票

尝试使用 awk 吗?仅适用于 Linux/macOS:

您可以尝试将 conda 列表输出通过管道传输到 awk 中,以仅提取第一个所需的列:

conda list | awk '{print $1}' | tail -n +4

这应该有效

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