Des problèmes pour que pygame affiche autre chose qu'un écran vide sur Macos Mojave




python-2.7 (4)

J'ai récemment acheté un nouveau macbook et j'essaie sans cesse de faire fonctionner pygame , mais je n'ai pas encore réussi. Je suis en train de devenir désespéré et je pourrais vraiment avoir besoin d'aide.

J'ai installé pygame 1.9.4 et même si je ne reçois aucun message d'erreur lors de l'exécution pygame code pygame , il ne pygame rien d'autre qu'un écran vide. J'utilise le code suivant pour le tester:

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()

Sur mon ancien macbook, le code de test me donne un écran rouge comme prévu. Les deux macbooks python 2.7.10 .

Est-ce que quelqu'un a une idée de ce que je fais mal? Je pense avoir installé pygame exactement comme je l’ai fait sur mon ancien macbook et la seule différence semble être le système d’exploitation.

edit 1: J'écris le script dans Sublime Text et exécute le programme dans Terminal. Screenshot

edit 2: Pigame a de nouveau fonctionné en rétrogradant mon système d’exploitation vers macOS High Sierra.


J'ai essayé de mettre à niveau mon ancien macbook vers OS Mojave pour voir si Pygame cesserait de fonctionner, et c'est ce qui a été fait!

Je suppose que Mojave n'est pas compatible avec Pygame (pour le moment).

Merci pour l'aide!


J'ai rencontré ce problème avec l'environnement suivant: Python 3.7, Mojave 10.14.2, Pygame 1.9.4

J'ai constaté que le passage à Python 3.6 corrigeait le problème

$ brew unlink python
$ brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/f2a764ef944b1080be64bd88dca9a1d80130c558/Formula/python.rb

Cela devrait résoudre le problème. Si vous rencontrez un problème de dépendance circulaire, vous devez alors exécuter:

$ brew install --ignore-dependencies https://raw.githubusercontent.com/Homebrew/homebrew-core/f2a764ef944b1080be64bd88dca9a1d80130c558/Formula/python.rb

Détails à l' https://apple.stackexchange.com/questions/329187/homebrew-rollback-from-python-3-7-to-python-3-6-5-x


DERNIÈRE EDIT UPDATE WORKING:: à partir de MacOS 10.14.1, si vous téléchargez le package d’installateur macOS x64 officiel de Python 3.7.2 à partir de la page officielle de Python, puis installez pip3 en tant que pygame, cela fonctionne.

Il y a un problème avec MacOS. Il devrait être possible de réparer en SDL.

La question de pygame est ici: https://github.com/pygame/pygame/issues/555

La question homebrew est ici: https://github.com/Homebrew/homebrew-core/issues/33016


Modifier avec solution de contournement: voir en bas de l'article

Je rencontre le même problème sur un MacBook Pro (écran Retina) avec python3.7 et MacOs Mojave. Par souci de simplicité, j'ai fait tous mes tests avec votre code exact et votre pygame 1.9.4 .

Sur deux ordinateurs Windows, le programme fonctionne et affiche une fenêtre rouge sur:

  • python2.7
  • python3.6
  • python3.7

Par conséquent, cela ne semble pas être un problème de version Python, je me penche vers un problème MacOS Mojave.

Mojave a introduit le «mode sombre» qui teint automatiquement les fenêtres. Lorsque le mode sombre est désactivé, mon écran est vide. Quand il est activé, je reçois un écran sombre. Peut-être que MacOS prend le contrôle de l’affichage à l’écran et pygame la manière dont pygame contrôle l’écran? C'est juste une théorie mais je ne sais pas comment la tester.

Edit: J'ai essayé un programme pygame qui enregistre et imprime la position de l'écran sur lequel vous avez cliqué. Il affiche la position dans la console, hélas, il n’affiche rien. Outre l'affichage défectueux, pygame semble fonctionner correctement.

Edit: Pour le moment, utiliser la version Python de miniconda et utiliser le pygame de CogSci semble fonctionner.





pygame