6

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

例如

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

pyenv virtualenv 3.3.2 work

我制作并进入一个名为的目录work,并拥有一个.python-version以文本work为唯一内容的文件。

Pyenv 检测到我的环境正在work使用这个文件,但我的 python 版本不是 python3.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(或给定环境的适当版本)。

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

4

1 回答 1

13

听起来,因为没有说它是 shim,所以您的环境变量中没有which pythonbin/shims 路径。将这些行添加到您的 shell 启动脚本中,并确保它们在任何其他路径操作之后位于末尾PATH

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

eval行做了一些额外的shell猴子我认为添加.pyenv/shims目录...检查一下echo $PATH可能。

于 2015-02-16T21:53:03.883 回答