web-dev-qa-db-fra.com

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

J'ai récemment acheté un nouveau macbook et j'ai essayé 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 du code pygame, il ne me montre 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 exécutent 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 . Capture d'écran

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

5
Boudewijn Maas

J'ai essayé de mettre à niveau mon ancien macbook vers OS Mojave pour voir si Pygame ne fonctionnerait plus, et c'est ce qui s'est passé! 

Je suppose que Mojave n'est pas encore compatible avec pygame.

Merci pour l'aide!

3
Boudewijn Maas

LATEST EDIT UPDATE WORKING:: à partir de MacOS 10.14.1, si vous téléchargez le package d'installation officiel macOS x64 de Python 3.7.2 à partir de la page officielle de Python, puis que pip3 installe 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 de l'homebrew est ici: https://github.com/Homebrew/homebrew-core/issues/33016

5
René Dudfield

Edit avec solution de contournement: Voir 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 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é, mon écran est noir. Peut-être que MacOS prend le contrôle de l’affichage à l’écran et manipule la façon 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… .. À part l’affichage défectueux, pygame semble fonctionner correctement.


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

2
adam

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

J'ai trouvé que passer à Python 3.6 corrige 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 sur https://Apple.stackexchange.com/questions/329187/homebrew-rollback-from-python-3-7-to-python-3-6-5-x

0
BeatBreaker82