如何在多个/所有conda环境中安装一个包?

13 投票
3 回答
8800 浏览
提问于 2025-04-18 09:06

我正在用conda来测试不同版本的python、numpy等,但有一些包是所有python和numpy组合都需要的。请问有没有办法把这些包安装到所有的conda环境里,还是说我必须一个一个手动指定?

3 个回答

5

在@abalter的回答中,除了使用for循环,你也可以用xargs来实现这个功能。需要注意的是,这种方法只适用于没有空格的环境名称:

conda env list | cut -d" " -f1 | tail -n+4 | xargs -L 1 conda install YOUR_PACKAGE -n
8

没有简单的命令可以做到这一点,但有一个方法可能会对你有帮助,那就是使用 conda metapackage 命令创建一个元包,这个元包依赖于你想要的那些包,这样你就可以只安装这个元包。比如你可以这样写:conda metapackage mypackage 1.0 --dependencies package1 package2 package3 ...

否则,你可能需要聪明地使用一下 xargs 命令。

16

你可以对conda env list的输出结果进行循环处理。比如说:

for env in $(conda env list | cut -d" " -f1 | tail -n+4); do conda install -n $env XXXXXX; done

撰写回答