Problemas para hacer que Pygame muestre algo más que una pantalla en blanco en Macos Mojave
python-2.7 (5)
Hace poco compré un nuevo macbook y he intentado sin fin que
pygame
funcione, pero aún no he tenido éxito.
Me estoy volviendo bastante desesperado y realmente podría necesitar algo de ayuda.
He instalado
pygame 1.9.4
y, aunque no recibo ningún mensaje de error al ejecutar el código de
pygame
, no
pygame
nada más que una pantalla en blanco.
Estoy usando el siguiente código para probarlo:
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()
En mi viejo macbook, el código de prueba me da una pantalla roja como se esperaba.
Ambos macbooks están ejecutando
python 2.7.10
.
¿Alguien tiene alguna idea de lo que estoy haciendo mal?
Creo que instalé
pygame
exactamente como lo hice en mi viejo macbook y la única diferencia parece ser el sistema operativo.
edición 1: escribo el script en Sublime Text y ejecuto el programa en Terminal. Screenshot
edición 2: Conseguí que Pygame volviera a funcionar al degradar mi sistema operativo a macOS High Sierra.
Intenté actualizar mi viejo macbook a OS Mojave para ver si Pygame dejaría de funcionar, ¡y así fue!
Supongo que Mojave no es compatible con pygame (todavía).
¡Gracias por la ayuda!
Me encontré con este problema con el siguiente entorno: Python 3.7, Mojave 10.14.2, Pygame 1.9.4
Encontré que la degradación a Python 3.6 soluciona el problema
$ brew unlink python
$ brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/f2a764ef944b1080be64bd88dca9a1d80130c558/Formula/python.rb
Eso debería arreglarlo, si tienes un problema de dependencia circular, deberías ejecutar:
$ brew install --ignore-dependencies https://raw.githubusercontent.com/Homebrew/homebrew-core/f2a764ef944b1080be64bd88dca9a1d80130c558/Formula/python.rb
Detalles en https://apple.stackexchange.com/questions/329187/homebrew-rollback-from-python-3-7-to-python-3-6-5-x
Tuve el mismo problema, lo hice funcionar bajando la versión de Python a 3.6.5.
> brew unlink python brew install --ignore-dependencies
> https://raw.githubusercontent.com/Homebrew/homebrew-core/f2a764ef944b1080be64bd88dca9a1d80130c558/Formula/python.rb
> brew switch python 3.6.5_1 pip3 install pygame
Si ya tiene la instalación de Python 3.6.5, supongo que solo puede usar el interruptor.
ACTUALIZACIÓN DE LA ÚLTIMA EDICIÓN FUNCIONANDO:: desde MacOS 10.14.1, si descarga el paquete de instalación oficial de macOS x64 de Python 3.7.2 desde la página oficial de python y luego pip3 instala pygame, funciona.
Hay un problema con MacOS. Debería ser posible arreglarlo en SDL.
- https://discourse.libsdl.org/t/macos-10-14-mojave-issues/25060/8
- https://bugzilla.libsdl.org/show_bug.cgi?id=4274
El problema de pygame está aquí: https://github.com/pygame/pygame/issues/555
El problema de homebrew está aquí: https://github.com/Homebrew/homebrew-core/issues/33016
Editar con la solución de trabajo: ver la parte inferior de la publicación
Tengo el mismo problema en un MacBook Pro (pantalla Retina) con
python3.7
y MacOs Mojave.
En aras de la simplicidad, hice todas mis pruebas con exactamente el mismo código y
pygame 1.9.4
.
En (dos) computadoras con Windows, el programa funciona y muestra una ventana roja en:
-
python2.7
-
python3.6
-
python3.7
Por lo tanto, no parece ser un problema de versión de Python, me inclino por un problema de MacOS Mojave.
Mojave introdujo el ''Modo oscuro'' que automáticamente tiñe las ventanas.
Cuando el modo oscuro está deshabilitado, aparece una pantalla en blanco.
Cuando está habilitado, aparece una pantalla oscura.
¿Podría ser que MacOS tome el control de la visualización de la pantalla y los problemas con la forma en que
pygame
controla la pantalla?
Es solo una teoría pero no sé cómo probarlo.
Edición:
probé un programa de pygame que registra e imprime la posición de la pantalla en la que hizo clic.
Da salida a la posición en la consola, por desgracia no muestra nada.
Aparte de la pantalla defectuosa,
pygame
parece funcionar correctamente.
Edición: por ahora, el uso de la versión Python de miniconda y el uso de Pygame de CogSci parece funcionar.