Problems getting pygame to show anything but a blank screen on Macos
I recently bought a new macbook and I've been trying endlessly to get pygame
to work, but haven't succeeded yet. I'm getting pretty desperate and I could really use some help.
I've installed pygame 1.9.4
and even though I don't get any error messages when running pygame
code, it won't show me anything but a blank screen. I'm using the following code to test it:
import pygame
pygame.init()
screen = pygame.display.set_mode((800,600))
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
quit()
screen.fill((255,0,0))
pygame.display.update()
pygame.quit()
On my old macbook the test code gives me a red screen as expected. Both macbooks are running python 2.7.10
.
Does anyone have any idea what I'm doing wrong? I think I installed pygame
exactly like I did on my old macbook and the only difference seems to be the operating system.
edit 1: I write the script in Sublime Text and run the program in Terminal. Screenshot
edit 2: I got pygame working again by downgrading my operating system to macOS High Sierra.
Solution 1:
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-packages
where~/.virtualenvs/myvirtualenv
is the path to your virtual environment andpython3.X
is the version of your Python. - For system-wide installation go to
/usr/local/lib/python3.X/site-packages
wherepython3.X
is the version of your Python.
- For virtual environment go to
- Delete any previous pygame,
pip uninstall pygame
(if apygame
directory exists insite-packages
then remove it:rm -rf pygame*
) - Clone PyGame from GitHub:
-
git clone https://github.com/pygame/pygame.git
for the latest (possibly not stable version). -
git clone -b 1.9.6 https://github.com/pygame/pygame.git --single-branch
for the latest (1.9.6
is 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
pygame
directory: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 --sdl2
topython3 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 --sdl2
topython3 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.
Solution 2:
I also face this problem on the macOS Catalina. Actually it is a version problem of pygame. Firstly I have installed with the following command:
pip3 install pygame
An only blank screen was showing. But later on, I have changed the version with the following command:
pip3 install pygame==2.0.0.dev4
With this version my problem was solved. It was working perfectly.