You can use pyenv to install python with:
brew install pyenv
pyenv install 2.7.18
Optionally set it to your global default:
pyenv global 2.7.18
Nice article on why using pyenv is better than using brew to manage your python installation.
To make python binary available globally, add shims to PATH:
PATH=$(pyenv root)/shims:$PATH
Answer from donturner on Stack OverflowYou can use pyenv to install python with:
brew install pyenv
pyenv install 2.7.18
Optionally set it to your global default:
pyenv global 2.7.18
Nice article on why using pyenv is better than using brew to manage your python installation.
To make python binary available globally, add shims to PATH:
PATH=$(pyenv root)/shims:$PATH
It seems that the homebrew staff really makes it as hard as possible to use Python 2.7 on macOS as they can.
- The linked
brew extractlink is really not helpful, you need to look for answers here about how to make your own tap from extracted sources. - The linked commit: 028f11f9e is wrong, as it contains the already deleted file.
- The
brew extractcommand doesn't even work correctly, because of the @ in the package name.
The solution is very simple though, you just need to download the latest known commit and install from that file:
cd ~
wget https://raw.githubusercontent.com/Homebrew/homebrew-core/86a44a0a552c673a05f11018459c9f5faae3becc/Formula/python@2.rb
brew install python@2.rb
rm python@2.rb
There might be a warning about this being "unstable", which I don't understand as a commit in a Git history is as stable as you can get.
You can get any Python release, including the last Python 2, from the official download site:
https://www.python.org/downloads/release/python-2718/ → macOS 64-bit installer
If, like me, you need it for development you should use PyEnv:
Here's a great tutorial: https://dev.to/jordicuevas/how-to-install-python2-in-a-macbook-m1-with-brew-bhi
TL;DR:
brew install pyenv
pyenv install 2.7.18
export PATH="$(pyenv root)/shims:${PATH}"
echo 'PATH=$(pyenv root)/shims:$PATH' >> ~/.zshrc
pyenv init
(Follow instructions provided. I had to add to ~/.zprofile and ~/.zshrc.)
Make sure you load the changes by running source ~/.zprofile and source ~/.zshrc.
pyenv shell 2.7.18
Now, the python command should target Python 2 in the shell/Terminal.