如何让 pyenv 找到已安装的 python 版本

How to let pyenv to find installed python versions

我在使用 pyenv 时遇到了以下矛盾的问题:

$ pyenv global python2.7.10
pyenv: version `python2.7.10' not installed
$ pyenv install 2.7.10
pyenv: /Users/xeli/.pyenv/versions/2.7.10 already exists
continue with installation? (y/N) 

还有:

$ python2.7
pyenv: python2.7: command not found

The `python2.7' command exists in these Python versions:
  2.7.10

垫片按要求在 PATH 上:

$ echo $PATH
/Users/xeli/.pyenv/shims:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin

垫片目录中没有可疑的东西:

$ ls ~/.pyenv/shims | grep python2
ipython2
python2
python2-config
python2.6
python2.6-config
python2.7
python2.7-config

在我的 .profile 我有:

export PYENV_ROOT=~/.pyenv
if which pyenv > /dev/null; then eval "$(pyenv init -)"; fi

因此应该在启动时初始化pyenv。

我不知道如何解决这个问题。有什么想法吗?

pyenv 似乎需要在当前目录中为除 .pyenv/version 中的默认版本之外的任何其他版本设置显式 .python-version 文件。 a closed GitHub issue.

中对此进行了解释

问题已通过创建 .python-version 文件解决。这是自动完成的,例如 $ pyenv local 2.7.10.

因此,最初的问题在于糟糕的错误消息。我创建了 a new issue 来修复它。

简答——您需要做的就是:

pyenv global 2.7.10

pyenv 的 Python 2.7.10 解释器版本的名称只是 2.7.10,而不是 python2.7.10。您可以使用以下命令获取所有已安装版本的列表:

pyenv versions

我安装了一个版本,后来卸载了它,但版本参考仍然在 .pyenv/version。一旦我从那里手动删除它,错误就消失了。