'export PATH' 的 pyenv 和 anaconda 问题
pyenv and anaconda issue with 'export PATH'
我的系统中安装了两个 pyenv+virtualenv and Anaconda,用于管理虚拟环境。
我的 .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
虚拟环境导致:
$ 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
会按预期工作。
有什么方法可以同时维护这两个管理器而不相互冲突?
答案显然隐藏在 pyenv 指令的第 3 点 Basic GitHub Checkout:
Please make sure eval "$(pyenv init -)"
is placed toward the end of the shell configuration file since it manipulates PATH
during the initialization
所以解决方案是将该行移动到 .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 -)"
我的系统中安装了两个 pyenv+virtualenv and Anaconda,用于管理虚拟环境。
我的 .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
虚拟环境导致:
$ 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
会按预期工作。
有什么方法可以同时维护这两个管理器而不相互冲突?
答案显然隐藏在 pyenv 指令的第 3 点 Basic GitHub Checkout:
Please make sure
eval "$(pyenv init -)"
is placed toward the end of the shell configuration file since it manipulatesPATH
during the initialization
所以解决方案是将该行移动到 .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 -)"