Installing Multiple Versions of Python Alongside Each Other on Apple Mac OS X with PyEnv
Install pyenv using Homebrew. You may need to install Homebrew first if you haven't used it before. If it has been a while, run
brew update first to update the formulae and Homebrew itself:
$ brew install pyenv
Update the path to use pyenv shims: edit
~/.zshrc (if you're running Mac OS Catalina which uses ZSH as the default shell) to include:
You might have to create
~/.zshrc if you haven't edited it before:
$ vim ~/.zshrc will create it and open it for editing in the Vim editor.
After saving, start a new Terminal window.
Find the latest Python version from available installations:
$ pyenv install --list
Install the latest version of Python (3.8.2 at the time of this writing):
$ pyenv install 3.8.2
Make that the global default version:
$ pyenv global 3.8.2
Install another version of Python, for example Python 2.7.17:
$ pyenv install 2.7.17
After setting the global, start a new Terminal window.
Verify the global version:
$ which python /Users/kinsa/.pyenv/shims/python $ python -V Python 3.8.2
If a project needs to use a specific version, from the project directory create a
.python-version file by specifying
local before the version number:
$ pyenv local 2.7.17
You may need to first get a list of installed versions by running:
$ pyenv versions
Once specified, you can verify that it it set:
$ python -V 2.7.17 $ cat .python-version 2.7.17
Setup a virtual environment using that version of Python and activate it. If the version of Python is 3.x, you can use Python 3's built in
venv package. From the project directory:
$ python -m venv .venv $ source .venv/bin/activate (.venv) $ which python ...venv/bin/python
If the version of Python is 2.x, you will need to use the 3rd party
virtualenv package. From the project directory:
$ pip install virtualenv $ virtualenv .venv $ source .venv/bin/activate (.venv) $ which python ...venv/bin/python
.venv to your
$ echo ".venv" >> .gitignore
Use pip to install project-specific Python packages:
$ pip install spam
- May 27, 2020
- Noted the need to run `brew update` if it has been a while since Homebrew was installed or last updated. Updated the language throughout for clarity.
Email us at firstname.lastname@example.org.
Found this useful?
We always appreciate a pint!