There are a few ways to go about this, but I prefer
- Homebrew for package management
- pyenv to manage Python versions, and
- pipenv to manage Python environments.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Make sure to follow the last steps to put brew on the path:
(echo; echo 'eval "$(/opt/homebrew/bin/brew shellenv)"') >> $HOME/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"
brew install pyenv xz
pyenv install 3.11.3
pyenv global 3.11.3
Setup shell env for Pyenv. I use zsh:
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
pip install pipenv --user
xcode-select --install