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

Aks*_*lén 6 python installation pyenv

我与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) 
Run Code Online (Sandbox Code Playgroud)

也:

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

The `python2.7' command exists in these Python versions:
  2.7.10
Run Code Online (Sandbox Code Playgroud)

根据需要,垫片位于PATH上:

$ echo $PATH
/Users/xeli/.pyenv/shims:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin
Run Code Online (Sandbox Code Playgroud)

shims目录中没有任何可疑内容:

$ ls ~/.pyenv/shims | grep python2
ipython2
python2
python2-config
python2.6
python2.6-config
python2.7
python2.7-config
Run Code Online (Sandbox Code Playgroud)

在我的.profile身上:

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

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

我无法弄清楚如何解决这个问题.有任何想法吗?

Aks*_*lén 9

pyenv似乎要求.python-version在当前目录中为默认的任何其他版本设置显式文件.pyenv/version.这是在一个封闭的GitHub问题中解释的.

通过创建.python-version文件来解决此问题.这例如通过自动完成$ pyenv local 2.7.10.

因此,最初的问题是错误的错误消息.我创建了一个新问题来解决它.


wjv*_*wjv 6

简短的回答——你需要做的就是:

pyenv global 2.7.10
Run Code Online (Sandbox Code Playgroud)

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

pyenv versions
Run Code Online (Sandbox Code Playgroud)