Autocomplete 将单击自动完成添加到conda环境激活脚本
我正在使用一个使用自动完成的Python库。因为我已经在conda env中安装了库,所以我希望自动完成与之关联。(另外,由于它没有安装在我的主Python环境中,因此在我的Autocomplete 将单击自动完成添加到conda环境激活脚本,autocomplete,conda,zsh,oh-my-zsh,Autocomplete,Conda,Zsh,Oh My Zsh,我正在使用一个使用自动完成的Python库。因为我已经在conda env中安装了库,所以我希望自动完成与之关联。(另外,由于它没有安装在我的主Python环境中,因此在我的.zshrc中添加eval“$(\u FOO\u BAR\u COMPLETE=source\u zsh FOO BAR)”无法工作。)的文档说明“如果gradient安装在虚拟环境中,则必须将以下内容添加到激活脚本中”: 我最初将其添加到~/miniconda3/envs/my_env/lib/python3.6/venv
.zshrc
中添加eval“$(\u FOO\u BAR\u COMPLETE=source\u zsh FOO BAR)”
无法工作。)的文档说明“如果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通过uu VENV_DIR uu
将预先添加到提示符中,而且当我运行conda activate myenv
时,这不会自动发生,这让我觉得这是一种错误的方法(例如,当我运行conda deactivate my_env
时,它不会被禁用)
我正在寻找的是一种规范的方法,可以添加一个脚本,在conda activate x
上运行,然后在conda deactivate x
上结束。看起来非常接近,但它用于添加带有export
和unset
的shell变量。有没有办法用点击的自动完成功能来实现这一点?在对中的说明进行了一点修改后,我似乎对我有用-我将eval
语句放在env_vars.sh
中,而deactivate.d
中没有任何内容
我的理解是,export
在整个会话中都是持久的,因此必须使用相应的unset
来撤消。而eval
仅适用于该会话,因此一旦停用conda env,它就不再有效
如果有人对《风帽下的康达》有更深入的了解,我会很高兴听到更多
source ~/miniconda3/envs/my_env/lib/python3.6/venv/scripts/common/activate