Pyenv没有自动激活

时间:2015-02-16 15:27:03

标签: python virtualenv boxen pyenv

我在我的环境中安装了pyenv,直到本周末(当我安装'Kivy'时)我的pyenv / local设置工作正常。但现在当我进入各种python项目目录时,pyenv不会自动正确激活正确的python版本。

E.g。

我使用像这样的pyenv创建一个环境,

pyenv virtualenv 3.3.2 work

我制作并进入名为work的目录,并提供.python-version个文件,其中包含文字work作为唯一内容。

Pyenv使用此文件检测到我的环境是work,但我的python版本不是python 3.3.2而是2.7.9

出于某种原因,发生了一些事情,并且我的所有pyenv虚拟环境都使用2.7.9而不是使用它们创建的python版本。

当我跑which python时,我明白了,

/opt/boxen/homebrew/bin/python

当我进入pyenv版本目录并运行

$ cat pyvenv.cfg                                                                                                                                                                                           
home = /opt/boxen/pyenv/versions/3.3.2/bin
include-system-site-packages = false 
version = 3.3.2

但是,如果我运行pyenv activate我的python版本切换到python 3.3.2(或给定env的相应版本)。

问题是,如何让pyenv像以前一样自动激活环境的python版本(在我做某事之前打破它)。

1 个答案:

答案 0 :(得分:7)

听起来,因为which python没有说它是垫片,你的PATH envvar中没有bin / shims路径 first 。将这些行添加到shell启动脚本中,并确保它们在任何其他路径操作之后位于 end

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

eval行执行了一些额外的shell修改我认为要添加.pyenv/shims目录...请检查echo $PATH可能。