如何在不重启终端的情况下在 Conda 和 Pyenv 之间来回切换?

如何在不重启终端的情况下在 Conda 和 Pyenv 之间来回切换?

我正在使用 conda 和 pyenv,并且想在同一个终端之间切换。

我的 .bashrc 中初始化两者的条目如下:

# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/home/myUser/miniconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
    eval "$__conda_setup"
else
    if [ -f "/home/myUser/miniconda3/etc/profile.d/conda.sh" ]; then
        . "/home/myUser/miniconda3/etc/profile.d/conda.sh"
    else
        export PATH="/home/myUser/miniconda3/bin:$PATH"
    fi
fi
unset __conda_setup

# Pyenv initialize
export PATH="/home/myUser/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

我只是尝试将初始化行(对于 pyenv)放在单独的 shell 脚本中,但是它不起作用(pyenv 没有初始化)。

信息:Pyenv 是另一个虚拟 Python 环境,我需要它与诗歌结合使用

答案1

我似乎找到了至少一个解决方法。似乎一旦激活了 pyenv,就很难停用它,因此我按照这个建议在 .bashrc 中定义了一个 init 函数邮政

enable-pyenv () {
    # Load pyenv automatically by adding
    # the following to your profile:

    export PATH="$HOME/.pyenv/bin:$PATH"
    eval "$(pyenv init -)"
    eval "$(pyenv virtualenv-init -)"
}

然后我只需根据需要在每个 shell 中激活 pyenv。请注意,我尝试的 bash 脚本不起作用(可能是因为它打开了一个单独的 shell 会话)。

相关内容