I recommend using pyenv to manage your local python versions (both 2.x and 3.x) instead of installing new versions directly with homebrew or building new python versions from source manually. Essentially, pyenv
can do two key things for you:
pyenv install 3.8.1
will install python 3.8.1 under ~/.pyenv/versions/3.8.1
.PATH
) with shims so that when you do pyenv local 3.8.1
, calling python
will invoke the new interpreter instead of your system python.The pyenv
repo is pretty detailed on how to install for different systems and what it's actually doing, but here's the basic steps for mac:
homebrew
if you don't already have it and use it to install pyenv
with brew install pyenv
.bash_profile
file to include:if command -v pyenv 1>/dev/null 2>&1; then
eval "$(pyenv init -)"
fi
Now install some python using pyenv and then switch to it with the pyenv local
command (you can see all your versions with pyenv versions
).
pyenv install 3.8.1 && pyenv local 3.8.1
Note: you may need to create a new shell or reload your bash_profile
in your current shell for the pyenv initialization to do its thing (set up shims).
With this setup, you'll be able to keep your system macosx python and switch to whatever new version of python you want available through pyenv
.