无法在 conda env 中更改 HOST env 变量
Can't change HOST env variable in conda env
我可以在 conda 中更改 HOST env 变量 base env (如下图)
但是,我无法在其他 conda env 中更改它,在我的情况下,它是 foo env
~ ❯ echo $HOST base
localhost
~ ❯ HOST=bar base
~ ❯ echo $HOST base
bar
~ ❯ conda activate foo base
~ ❯ echo $HOST foo
x86_64-conda-linux-gnu
~ ❯ HOST=bar foo
~ ❯ echo $HOST foo
x86_64-conda-linux-gnu
我也试过 export
但没有成功:
~ ❯ export HOST=bar foo
~ ❯ echo $HOST foo
x86_64-conda-linux-gnu
我想更改 HOST 变量以跟随 。
我正在使用 zsh,但是当我更改为 bash 时,一切正常 .
那么如何更改 HOST 变量(在 conda env foo 中 zsh)?
解决方法
解决方法是链接命令:
~ ❯ HOST=localhost && echo $HOST
localhost
这并不能解决您无法保留该值的问题,但至少您可以根据需要启动带有它定义的内容。
问题来源
我不熟悉 zsh
的细节,但 Conda 环境的这种特定行为似乎是由 gcc_linux-64
包引起的,其中包括 these lines in its activation script:
# fix prompt for zsh
if [[ -n "${ZSH_NAME:-}" ]]; then
autoload -Uz add-zsh-hook
_conda_clang_precmd() {
HOST="${CONDA_BACKUP_HOST}"
}
add-zsh-hook -Uz precmd _conda_clang_precmd
_conda_clang_preexec() {
HOST="${CONDA_TOOLCHAIN_HOST}"
}
add-zsh-hook -Uz preexec _conda_clang_preexec
fi
粗略地说,这个编译器工具链似乎需要以特定方式设置 HOST,并且由于某些原因 zsh
使得更改它有问题。此处的代码似乎使用挂钩在 执行命令之前 设置 HOST,然后在再次显示提示之前从备份中恢复它。
我鼓励您提交 an issue on the pertinent feedstock,询问他们为什么这样做以及是否可以更改。
我可以在 conda 中更改 HOST env 变量 base env (如下图)
但是,我无法在其他 conda env 中更改它,在我的情况下,它是 foo env
~ ❯ echo $HOST base
localhost
~ ❯ HOST=bar base
~ ❯ echo $HOST base
bar
~ ❯ conda activate foo base
~ ❯ echo $HOST foo
x86_64-conda-linux-gnu
~ ❯ HOST=bar foo
~ ❯ echo $HOST foo
x86_64-conda-linux-gnu
我也试过 export
但没有成功:
~ ❯ export HOST=bar foo
~ ❯ echo $HOST foo
x86_64-conda-linux-gnu
我想更改 HOST 变量以跟随
我正在使用 zsh,但是当我更改为 bash 时,一切正常 .
那么如何更改 HOST 变量(在 conda env foo 中 zsh)?
解决方法
解决方法是链接命令:
~ ❯ HOST=localhost && echo $HOST
localhost
这并不能解决您无法保留该值的问题,但至少您可以根据需要启动带有它定义的内容。
问题来源
我不熟悉 zsh
的细节,但 Conda 环境的这种特定行为似乎是由 gcc_linux-64
包引起的,其中包括 these lines in its activation script:
# fix prompt for zsh
if [[ -n "${ZSH_NAME:-}" ]]; then
autoload -Uz add-zsh-hook
_conda_clang_precmd() {
HOST="${CONDA_BACKUP_HOST}"
}
add-zsh-hook -Uz precmd _conda_clang_precmd
_conda_clang_preexec() {
HOST="${CONDA_TOOLCHAIN_HOST}"
}
add-zsh-hook -Uz preexec _conda_clang_preexec
fi
粗略地说,这个编译器工具链似乎需要以特定方式设置 HOST,并且由于某些原因 zsh
使得更改它有问题。此处的代码似乎使用挂钩在 执行命令之前 设置 HOST,然后在再次显示提示之前从备份中恢复它。
我鼓励您提交 an issue on the pertinent feedstock,询问他们为什么这样做以及是否可以更改。