You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在多个conda环境中安装同一个软件包?

批量为多个conda环境安装同一软件包

嘿,这个需求完全可以用1-2条命令搞定,不用挨个环境手动操作~下面给你两种实用方案,不管是用conda还是pip安装都能实现:

方案1:通过conda批量安装

你可以结合shell命令的管道和循环,直接遍历所有conda环境并执行安装。比如要给所有环境安装numpy,在bash或zsh里运行这一行就行:

conda env list | grep -v '^#' | awk '{print $1}' | xargs -I {} conda install -n {} numpy -y

拆解一下这个命令的作用:

  • conda env list:列出所有已创建的conda环境
  • grep -v '^#':过滤掉输出里的注释行(就是开头带#的那些)
  • awk '{print $1}':提取每一行的环境名称(输出里的第一列)
  • xargs -I {}:把每个环境名替换到后续命令的{}位置
  • conda install -n {} numpy -y:给指定环境安装numpy,-y参数会自动确认所有安装提示,不用手动回车

要是不想给base环境安装,加个过滤就行:

conda env list | grep -v '^#' | grep -v '^base' | awk '{print $1}' | xargs -I {} conda install -n {} numpy -y

方案2:通过pip批量安装

如果这个包用pip安装更合适,也可以用类似思路,不过要注意用conda run来确保调用对应环境的pip(避免用错全局pip):

conda env list | grep -v '^#' | awk '{print $1}' | xargs -I {} conda run -n {} pip install numpy

同样,要排除base环境的话,加上grep -v '^base'就行。

进阶小技巧:写个shell函数简化操作

要是你经常需要做这种批量安装,可以把逻辑写成一个shell函数,放到你的.bashrc或者.zshrc里:

conda-batch-install() {
  # 第一个参数是要安装的包名
  local PACKAGE="$1"
  conda env list | grep -v '^#' | grep -v '^base' | awk '{print $1}' | xargs -I {} conda install -n {} "$PACKAGE" -y
}

之后用的时候只要输入conda-batch-install numpy,就能给除base外的所有环境装numpy了,超方便~

如果有个别环境不需要安装,还可以临时加过滤,比如不想给explore_cora环境装,就把命令里的grep -v '^base'改成grep -v '^base' | grep -v 'explore_cora'就行。

内容的提问来源于stack exchange,提问作者lhoupert

火山引擎 最新活动