Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to let pyenv to find installed python versions

I experience a following contradictory problem with 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) 

Also:

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

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

The shims are on the PATH as required:

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

Nothing suspicious in the shims directory:

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

In my .profile I have:

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

Therefore pyenv should be initialized at startup.

I cannot figure out how to solve this. Any ideas?

like image 672
Akseli Palén Avatar asked Apr 01 '16 12:04

Akseli Palén


People also ask

How do I add Python to Pyenv?

You can then use pyenv to switch to the specific python version you want to use (globally or locally). Pyenv does this by adding a shim to your $PATH which directs all python and python related tools like pip and easy_install to /. pyenv/shims/python, from here pyenv manages the various versions for us.


2 Answers

pyenv seems to require explicit .python-version file to be set in the current directory for any other version than the default in .pyenv/version. This is explained in a closed GitHub issue.

The problem is fixed by creating .python-version file. This is done automatically for example by $ pyenv local 2.7.10.

The initial problem therefore is in the poor error message. I created a new issue to fix it.

like image 149
Akseli Palén Avatar answered Sep 19 '22 10:09

Akseli Palén


Short answer — all you need to do is:

pyenv global 2.7.10

pyenv’s name for the Python 2.7.10 interpreter version is just 2.7.10, not python2.7.10. You can get a list of all your installed versions with:

pyenv versions
like image 45
wjv Avatar answered Sep 20 '22 10:09

wjv