pyenv和anaconda的“导出路径”问题

2024-04-18 09:30:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我的系统中安装了pyenv+virtualenv和{a2},用于管理虚拟环境。在

我的.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"

在给定的文件夹中,我使用

^{pr2}$

列出该文件夹中的pyenv虚拟环境会导致:

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

但是,当我加载python而不是使用pythonv2.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.
>>> 

很明显,水蟒平台正处于我的虚拟环境之间。列出conda环境显示:

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

如果我注释掉export PATH="$HOME/anaconda3/bin:$PATH"行,pyenv就可以正常工作了。在

有没有什么办法可以维持这两个经理而不互相冲突呢?在


Tags: pathtestenv文件夹pyenvhomebybin
1条回答
网友
1楼 · 发布于 2024-04-18 09:30:32

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

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 -)"

相关问题 更多 >