conda 从 bash 脚本导出环境

conda export env from bash script

我想出了以下 bash 脚本来将我的 conda-env 导出到文件。

run.sh

#!/usr/bin/bash
while [[ $# -gt 0 ]]; do
option=
case "$option" in
    -e|--export)
        conda env export -n myenv | grep -v "^prefix: " > ../setup/env.yaml
        shift
        ;;
        esac
done

conda env export -n myenv | grep -v "^prefix: " > ../setup/env.yaml 在命令行中执行时按预期工作。但是在执行 ./run.sh -e 时,env.yaml 看起来像

name: myenv
channels:
  - defaults

寻求帮助解决这个问题。谢谢。

编辑:已经尝试了 link (https://stephencowchau.medium.com/simple-bash-script-to-export-all-conda-virtual-environments-2e337cd9480) 中的字符串和 eval 方法,它也产生了与我的脚本相同的结果。

Edit2:这似乎适用于 Linux 机器。但在 windows.

中不在 WSL 中工作

在脚本开头添加以下行修复了问题

CONDA_PATH=$(conda info | grep -i 'base environment' | awk '{print }')
source $CONDA_PATH/etc/profile.d/conda.sh