Tested and works on macOS 10.15 Catalina, Python 3.7.5, PyGame 2.0.0 (pre-release as of this writing) and PyGame 1.9.6 (stable as of this writing).
Initially you need to decide if you want a stable release or a pre-release (unstable). If you decide to use the latest (and possibly pre-release/unstable) then just ignore the first step (“1. Find the latest stable release version”) and use master branch at step 4 of the second step (“2. Install PyGame from source”).
1. Find the latest stable release version
Go to PyGame’s GitHub page here:

As you can see as of this writing the latest stable release is 1.9.6 so we hold this tag name for later.
2. Install PyGame on macOS from source
- Install some dependencies
brew install sdl2 sdl2_gfx sdl2_image sdl2_mixer sdl2_net sdl2_ttf. This requires homebrew. - Go to
site-packages:- For virtual environment go to
cd ~/.virtualenvs/myvirtualenv/lib/python3.X/site-packageswhere~/.virtualenvs/myvirtualenvis the path to your virtual environment andpython3.Xis the version of your Python. - For system-wide installation go to
/usr/local/lib/python3.X/site-packageswherepython3.Xis the version of your Python.
- For virtual environment go to
- Delete any previous pygame,
pip uninstall pygame(if apygamedirectory exists insite-packagesthen remove it:rm -rf pygame*) - Clone PyGame from GitHub:
git clone https://github.com/pygame/pygame.gitfor the latest (possibly not stable version).git clone -b 1.9.6 https://github.com/pygame/pygame.git --single-branchfor the latest (1.9.6is the tag name of the latest stable release, as of this writing, see “Find the latest stable release version above”)
- Go into the newly cloned
pygamedirectory:cd pygame. - Run
python setup.py --config --auto --sdl2.- If you get problems with this command, some users below mentioned that single hyphens worked for them, therefore try:
python setup.py -config -auto -sdl2. - If you get any problems regarding Python2/3 and you are targeting Python3 try to change
python setup.py --config --auto --sdl2topython3 setup.py --config --auto --sdl2.
- If you get problems with this command, some users below mentioned that single hyphens worked for them, therefore try:
- Run
python setup.py install(it will take a while).- If you get any problems regarding Python2/3 and you are targeting Python3 try to change
python setup.py --config --auto --sdl2topython3 setup.py --config --auto --sdl2.
- If you get any problems regarding Python2/3 and you are targeting Python3 try to change
Now PyGame should work as expected on macOS.