这是这个答案的后续问题。例如,对于conda环境规范文件environment.yml
,如果我定义的变量是PATH
,我如何对其进行预处理或追加,而不仅仅是覆盖它?以下内容正确吗?
name: foo
channels:
- defaults
dependencies:
- python
variables:
MY_VAR: something
OTHER_VAR: ohhhhya
PATH: /some/path:$PATH
这取决于您使用的是windows还是linux。通过查看环境init代码的源代码,可以发现conda本身只是执行bash(linux(或cmd.exe(win(调用:
linux:
yield from (f"export {envvar}='{value}'" for envvar, value in sorted(env_vars.items()))
窗口:
yield from (f'@SET "{envvar}={value}"' for envvar, value in sorted(env_vars.items()))
因此,请确保为变量使用了正确的语法。在linux的情况下,这将是
variables:
MY_VAR: something
OTHER_VAR: ohhhhya
PATH: /some/path $PATH
AFAIK窗口使用;
来分隔条目,因此您可能必须这样做(未经测试(:
variables:
MY_VAR: something
OTHER_VAR: ohhhhya
PATH: /some/path;%PATH%