Alexander Mills
Alexander Mills

Reputation: 99959

Setting global python version with pyenv is not working as expected

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)?

Upvotes: 11

Views: 31814

Answers (2)

Lauren
Lauren

Reputation: 1536

For MacOS I had to set the global version pyenv global 3.10.1 and then exec $SHELL

Upvotes: -2

patrick
patrick

Reputation: 4852

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.

Upvotes: 10

Related Questions