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

时间:2017-02-17 04:54:09

标签: python-3.x anaconda pyenv

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

(仅从提示(常规)用户名@ 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 -)"

2 个答案:

答案 0 :(得分:1)

尝试将此添加到您的.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

答案 1 :(得分:0)

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

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

当我切换到某个环境时,我会使用简写 w 来检查“我在哪里”。