Por qué al importar pygame, imprime la versión y el mensaje de bienvenida. ¿Cómo borrarlo?

¿Por qué hay un mensaje cuando importo pygame? Imprime la versión y el mensaje de bienvenida. El mensaje lee

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

¿Cómo puedo deshabilitar este mensaje?

No vi una forma natural de hacerlo (el tuyo es el único resultado de Google que pude encontrar), pero logré lo mismo al deshabilitar temporalmente la salida estándar al importar 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 

Aquí está la alternativa sugerida por @Mad Physicist:

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

Puede navegar a la carpeta de la biblioteca de pygame, algo como esto para la versión 3.6 de 32 bits:

 Python36-32\Lib\site-packages\pygame 

y edite el archivo __init__.py y elimine la última línea para deshacerse de este mensaje.

El código fuente contiene una condición que protege la impresión de este mensaje:

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

Ver este compromiso

Esto se agregó bastante recientemente (octubre de 2018) y hasta la fecha se publicó 1.9.4 antes de esto. Una vez que se PYGAME_HIDE_SUPPORT_PROMPT= ./my_code.py la próxima versión> 1.9.4, simplemente debe ejecutar su código con PYGAME_HIDE_SUPPORT_PROMPT= ./my_code.py para ocultar el mensaje.

  1. importar pygame
  2. Obtenga la ubicación del archivo init: f = pygame.__file__
  3. Abra f y comente la impresión en las dos últimas líneas del archivo

Vaya al archivo __init__.py de __init__.py , vaya al final de ese archivo y comente esas dos funciones de impresión.

 print('pygame %s' % ver) print('Hello from the pygame community. https://www.pygame.org/contribute.html') 

Sin embargo, no lo haría porque la comunidad de pygame es una comunidad de código abierto, y querrían que la mayor cantidad posible de personas contribuyan a pygame, por eso tienen esta función de impresión. No lo comentaría si fuera usted.

 # remove pygame installed with "pip install..." python pip uninstall pygame # remove all folder with pygame sudo apt-get update -y; sudo apt-get upgrade -y sudo apt-get install python-pyame 

La versión instalada con la última línea funcionará sin anunciar su nombre.