python - pyenv 和 anaconda 问题 'export PATH'

标签 python anaconda pyenv

我都有 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 虚拟环境会导致:

$ 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 打开 session 时(正如人们所期望的那样,因为加载了 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 -)"

关于python - pyenv 和 anaconda 问题 'export PATH',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40944277/

相关文章:

python - matplotlib 调整图像大小

python-3.x - 文件未找到错误: [WinError 3] The system cannot find the path specified:

python - 导入错误 : No module name sklearn. external.six

python - 为什么我不能 "deactivate"pyenv/virtualenv?如何安装 "fix"

python - pyenv如何使用pip?

python - Google BigQuery 对奇怪尝试的不完整查询回复

python - 值错误 : unsupported pickle protocol: 4 with pandas

python - 如何将 CSV 文件导入为 NumPy 数组?

python - 在linux上的anaconda虚拟环境中下载spacy ray

python - pyenv 错误