如何在不重新啟動終端的情況下在 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 會話)。

相關內容