Erreur Pygame “Système vidéo non initialisé” sur le serveur Ubuntu avec terminal uniquement

J’utilise pygame sur un PC (PC-104) avec un serveur Ubuntu, pour cette raison, il ne dispose que d’un terminal et non d’une interface utilisateur.

Sur mon portable, le code fonctionne parfaitement, exécutant le code sur le terminal “python game.py” par exemple, mais sur le PC104 il donne “Système vidéo non initialisé”, je lis que l’erreur est affichée car c’est un moyen d’utiliser des événements sur un système sans interface utilisateur?

Merci.

Il est possible d’exécuter des programmes pygame dans un système sans X11 si vous le configurez pour utiliser le framebuffer ou le vgalib – les docs parlent même d’utiliser aalib (qui afficherait des graphiques en utilisant des images ascii sur le terminal).

Cette partie de la documentation l’a:

Pygame sélectionne l’un des nombreux moteurs d’affichage internes lorsqu’il est initialisé. Le mode d’affichage sera choisi en fonction de la plate-forme et des permissions de l’utilisateur actuel. Avant que le module d’affichage ne soit initialisé, la variable d’environnement SDL_VIDEODRIVER peut être configurée pour contrôler quel backend est utilisé. Les systèmes avec plusieurs choix sont répertoriés ici.

Windows: windib, directx
Unix: x11, dga, fbcon, directfb, ggi, vgl, svgalib, aalib

Vous devez donc définir la variable d’environnement SDL_VIDEODRIVER avant de commencer votre code. Et être sage de la bonne lib. est installé.

Pour plus d’informations: http://www.pygame.org/docs/ref/display.html

Merci pour votre réponse jsbueno. J’ai pu trouver une solution il y a quelques semaines mais j’ai oublié de répondre à la question.

Je n’ai pas pu exécuter de script pygame avec une autre bibliothèque que X11. Mais j’ai trouvé que l’on pouvait exécuter le script sans bibliothèque graphique. Il suffit de définir la variable d’environnement SDL_VIDEOLIBRARY sur “dummy”.

C’est possible sur bash mais je préfère le faire sur python:

os.environ["SDL_VIDEODRIVER"] = "dummy" 

Avec cela, j’ai pu exécuter le script pygame, détecter les événements joystick, etc.