Setting global python version with pyenv is not working as expected

13,003

Just to elaborate on my comment, now that I have some time.

The docs describe the shell command for this purpose, which you can run like so:

pyenv shell pypy-2.2.1

Notes:

If you installed pyenv via Homebrew et al, that should work out of the box (it did for me). If not, the installation instructions detail a necessary step:

Add pyenv init to your shell to enable shims and autocompletion. Please make sure eval "$(pyenv init -)" is placed toward the end of the shell configuration file since it manipulates PATH during the initialization.

The specific command they suggest (for bash) is:

$ echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bash_profile

Then restart the shell.

There is some further caveats for specific shells listed on the installation instructions linked. Hope this helps.

Share:
13,003
Alexander Mills
Author by

Alexander Mills

Dev, Devops, soccer coach. https://www.github.com/oresoftware

Updated on June 27, 2022

Comments

  • Alexander Mills
    Alexander Mills almost 2 years

    Regarding pyenv: https://github.com/pyenv/pyenv

    I have this:

    $ pyenv global 2.7
    $ python --version
    Python 3.6.4
    

    My pyenv version is:

    pyenv 1.2.2
    

    does anyone know the right way to set a python version for any particular shell (and child shells)?