Como alternar entre Conda e Pyenv sem reiniciar o terminal?

Como alternar entre Conda e Pyenv sem reiniciar o terminal?

Estou usando conda e pyenv e gostaria de alternar entre os dois enquanto permaneço no mesmo terminal.

As entradas para inicializar ambos no meu .bashrc são as seguintes:

# >>> 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

e

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

Eu simplesmente tentei colocar as linhas de inicialização (para pyenv) em um script de shell separado, mas não funcionou (pyenv não é inicializado).

Informações: Pyenv é mais um ambiente python virtual que preciso para uso em combinação com poesia

Responder1

Parece que encontrei pelo menos uma solução alternativa. Parece que desativar o pyenv depois de ativado é uma coisa difícil de fazer. Em vez disso, defino uma função init no meu .bashrc, conforme sugerido nestepublicar

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 -)"
}

Então eu simplesmente ativo o pyenv em cada shell sob demanda. Observe que o script bash que tentei não estava funcionando (provavelmente porque abre uma sessão de shell separada).

informação relacionada