如何在Ubuntu中的(通用)pyenv python和系统python之间来回切换?

How to switch back and forth between (general) pyenv python and system python in Ubuntu?

我曾经在 Ubuntu 中使用 anaconda3 安装的 python。但出于某种原因,我还需要创建一个 pyenv 并将其推广给所有用户。对于 运行 python 脚本,我了解到与 anaconda3 不同的是,我必须使用所有需要的 python 包构建 pyenv,因为我收到错误消息说模块没有定义。因此,在安装 pyenv 后,我在 (general) pyenv shell 中使用 pip install <package_name> 安装了所需的模块。现在我可以 运行 脚本了。有没有办法在anaconda3系统python和pyenvpython之间来回切换?

(仅根据提示 (general) username@username-Rev-1-0:~$, 我知道我现在在 pyenv。 )

这里是 .bashrc 文件的相关部分:

# added by Anaconda3 4.3.0 installer
export PATH="/home/username/anaconda3/bin:$PATH"

# Load pyenv automatically by adding
# the following to ~/.bash_profile:

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

尝试将其添加到您的 .bashrc。

export ANACONDA_HOME="/home/username/anaconda3"
alias my_anaconda="unset PYENV_HOME && export PATH=$ANACONDA_HOME/bin:$PATH"

# Load pyenv automatically by adding
# the following to ~/.bash_profile:
export PYENV_HOME="/home/username/.pyenv/"
alias my_pyenv='unset ANACONDA_HOME && export PATH=$PYENV_HOME/bin:$PATH && eval "$(pyenv init -)" && eval "$(pyenv virtualenv-init -)"'

在 shell 上,尝试:

$my_anaconda

$my_pyenv

灵感来自答案,谢谢。我在 MacOs 上使用了类似的方法:

# in my ~/.bash_profile
# Anaconda app is installed and initiated at the terminal start
# path to Anaconda: /Users/<USER>/opt/anaconda3/


switch_pyenv(){
    conda deactivate
    conda deactivate # in case you're not in base env
    eval "$(pyenv init -)"
    eval "$(pyenv virtualenv-init -)"
}

switch_conda(){
    conda activate base
    export PATH="/Users/<USER>/opt/anaconda3/bin:$PATH"
}


# quick check which python, pip
w(){
  which python
  which pip
  py -V
}

当我切换到一个环境时,我检查 'where am i' 和 shorthand w