【问题标题】:pyenv and anaconda issue with 'export PATH'pyenv 和 anaconda 与“导出路径”有关的问题
【发布时间】:2016-12-03 04:36:50
【问题描述】:

我的系统中同时安装了pyenv+virtualenvAnaconda,用于管理虚拟环境。

我的 .zshrc 文件如下所示:

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

# added by Anaconda3 4.2.0 installer
export PATH="$HOME/anaconda3/bin:$PATH"

在给定文件夹中,我设置了一个本地 pyenv 虚拟环境

$ pyenv local test-env

在该文件夹中列出 pyenv virtual-envs 会导致:

$ pyenv versions
system
2.7.12
2.7.12/envs/test-env
* test-env (set by /home/<path>/.python-version)

但是当我加载 python 而不是使用 Python v2.7.12 打开会话时(正如人们所期望的那样,因为加载了 pyenv 虚拟环境),我得到:

$ python
Python 3.5.2 |Anaconda custom (64-bit)| (default, Jul  2 2016, 17:53:06) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 

很明显,Anaconda 平台介于我的pyenv 虚拟环境之间。列出 conda 环境显示:

$ conda-env list
# conda environments:
#
root                  *  /home/<user>/anaconda3

如果我注释掉 export PATH="$HOME/anaconda3/bin:$PATH" 行,pyenv 将按预期工作。

有没有什么办法可以保持这两个管理器不相互冲突?

【问题讨论】:

    标签: python anaconda pyenv


    【解决方案1】:

    答案显然隐藏在pyenv指令Basic GitHub Checkout的第3点中:

    请确保 eval "$(pyenv init -)" 位于 shell 配置文件的末尾,因为它在初始化期间会操纵 PATH

    因此解决方案是将该行移至.zshrc 文件的末尾,如下所示:

    # added by Anaconda3 4.2.0 installer
    export PATH="$HOME/anaconda3/bin:$PATH"
    
    # Load pyenv automatically:
    export PATH="$HOME/.pyenv/bin:$PATH"
    eval "$(pyenv init -)"
    eval "$(pyenv virtualenv-init -)"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-09
      • 1970-01-01
      • 2020-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-09
      相关资源
      最近更新 更多