将点击自动完成添加到 conda env activate 脚本
Adding click autocompletion to conda env activate script
我正在使用 Python 库,它使用 click autocompletion. Since I've installed the library in a conda env, I'd like the autocomplete to be associated with it. (Also, since it isn't installed in my primary Python env, adding eval "$(_FOO_BAR_COMPLETE=source_zsh foo-bar)"
to my .zshrc
doesn't work.) The documentation for the library I'm using 说 "if gradient was installed in a virtual environment, the following has to be added to the activate
script":
eval "$(_GRADIENT_COMPLETE=source gradient)"
我最初将此添加到 ~/miniconda3/envs/my_env/lib/python3.6/venv/scripts/common/activate
,但自动完成功能不起作用。 运行
source ~/miniconda3/envs/my_env/lib/python3.6/venv/scripts/common/activate
可以工作,但是我的 shell 会在提示前添加 via __VENV_DIR__
,而且当我 [=40] 时这不会自动发生=] conda activate myenv
让我觉得这是错误的做法(一方面,当我 conda deactivate my_env
时它没有被禁用)。
我正在寻找的是在 conda activate x
上将脚本添加到 运行,然后在 conda deactivate x
上结束的规范方法。 This 看起来很接近,但它是为了添加 shell 变量与 export
和 unset
。有没有办法用 click
的自动完成功能做到这一点?
对 the docs 中的说明进行小幅修改后似乎对我有用 - 我将 eval
语句放在 env_vars.sh
中,而 deactivate.d
中没有任何内容。
我的理解是 export
在整个会话中持续存在于 shell 中,因此必须用相应的 unset
撤消。而 eval
仅适用于该会话,因此一旦停用 conda env,它就不再有效。
很高兴听到对 bash
/conda
有更深入了解的人的更多信息!
我正在使用 Python 库,它使用 click autocompletion. Since I've installed the library in a conda env, I'd like the autocomplete to be associated with it. (Also, since it isn't installed in my primary Python env, adding eval "$(_FOO_BAR_COMPLETE=source_zsh foo-bar)"
to my .zshrc
doesn't work.) The documentation for the library I'm using 说 "if gradient was installed in a virtual environment, the following has to be added to the activate
script":
eval "$(_GRADIENT_COMPLETE=source gradient)"
我最初将此添加到 ~/miniconda3/envs/my_env/lib/python3.6/venv/scripts/common/activate
,但自动完成功能不起作用。 运行
source ~/miniconda3/envs/my_env/lib/python3.6/venv/scripts/common/activate
可以工作,但是我的 shell 会在提示前添加 via __VENV_DIR__
,而且当我 [=40] 时这不会自动发生=] conda activate myenv
让我觉得这是错误的做法(一方面,当我 conda deactivate my_env
时它没有被禁用)。
我正在寻找的是在 conda activate x
上将脚本添加到 运行,然后在 conda deactivate x
上结束的规范方法。 This 看起来很接近,但它是为了添加 shell 变量与 export
和 unset
。有没有办法用 click
的自动完成功能做到这一点?
对 the docs 中的说明进行小幅修改后似乎对我有用 - 我将 eval
语句放在 env_vars.sh
中,而 deactivate.d
中没有任何内容。
我的理解是 export
在整个会话中持续存在于 shell 中,因此必须用相应的 unset
撤消。而 eval
仅适用于该会话,因此一旦停用 conda env,它就不再有效。
很高兴听到对 bash
/conda
有更深入了解的人的更多信息!