web-dev-qa-db-fra.com

Pourquoi lors de l'importation pygame, il imprime la version et le message de bienvenue. Comment le supprimer?

Pourquoi y-a-t-il un message lors de l'importation de pygame, la version et le message de bienvenue sont imprimés. Le message lit

"pygame 1.9.4 Hello from the pygame community.
 https://www.pygame.org/contribute.html" 

Comment puis-je désactiver ce message?

16
Aaron

Je ne voyais pas de moyen naturel de le faire (le seul résultat que j'ai trouvé sur Google dans ce domaine est celui de Google), mais j'ai obtenu le même résultat en désactivant temporairement stdout lors de l'importation de pygame.

import os, sys
with open(os.devnull, 'w') as f:
    # disable stdout
    oldstdout = sys.stdout
    sys.stdout = f

    import pygame

    # enable stdout
    sys.stdout = oldstdout

Voici l'alternative proposée par @Mad Physicist:

import contextlib
with contextlib.redirect_stdout(None):
    import pygame
21
tsbertalan

Vous pouvez naviguer dans le dossier de la bibliothèque pygame, comme ceci pour la version 3.6 32 bits: 

Python36-32\Lib\site-packages\pygame

et éditez le fichier __init__.py et supprimez la dernière ligne pour vous débarrasser de ce message.

4
Kalif
  1. importer pygame
  2. Obtenir l'emplacement du fichier init: f = pygame.__file__
  3. Ouvrez f et commentez l’impression sur les deux dernières lignes du fichier
1
Hunaphu

Le code source contient une condition empêchant l'impression de ce message:

if 'PYGAME_HIDE_SUPPORT_Prompt' not in os.environ:
    print('pygame %s' % ver)
    print('Hello from the pygame community. https://www.pygame.org/contribute.html')

Voir ce commit

Cela a été ajouté assez récemment (octobre 2018) et jusqu'à présent, 1.9.4 a été publié auparavant. Une fois la prochaine version> 1.9.4 publiée, vous devriez simplement pouvoir exécuter votre code avec PYGAME_HIDE_SUPPORT_Prompt= ./my_code.py pour masquer le message.

0
Will