Why when import pygame, it prints the version and welcome message. How delete it?

PythonTerminalPygame

Python Problem Overview


Why is there a message when I import pygame, it prints the version and welcome message. The message reads

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

How can I disable this message?

Python Solutions


Solution 1 - Python

It works for me:

import os
os.environ['PYGAME_HIDE_SUPPORT_PROMPT'] = "hide"
import pygame

Solution 2 - Python

I didn't see a natural way to do it (yours is the only Google result for this that I could find), but I did achieve the same thing by temporarily disabling stdout while importing 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

Here's the alternative suggested by @Mad Physicist:

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

Solution 3 - Python

The source code contains a condition guarding the printing of this 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')

See this commit

This was added fairly recently (October 2018) and so far 1.9.4 was released prior to this. Once the next version > 1.9.4 is released you should simply by able to run your code with PYGAME_HIDE_SUPPORT_PROMPT= ./my_code.py to hide the message.

Solution 4 - Python

You can navigate to the pygame library folder, something like this for 3.6 32 bit version:

Python36-32\Lib\site-packages\pygame

and edit the __init__.py file and remove the last line to get rid of this message.

Solution 5 - Python

  1. import pygame
  2. Get the location of the init file: f = pygame.__file__
  3. Open f and comment out the print on the last two lines of the file

Solution 6 - Python

For me, only this worked in python 3:

import sys, os

# Disable print
def blockPrint():
    sys.stdout = open(os.devnull, 'w')

# Enable print
def enablePrint():
    sys.stdout = sys.__stdout__


blockPrint()
import pygame
enablePrint()

(thanks for [Brigand!][1]) [1]: https://stackoverflow.com/a/8391735/8474284

Solution 7 - Python

For me, PYGAME_HIDE_SUPPORT_PROMPT does not work. Add this for the whole block of imports:

sys.stdout = open(os.devnull, "w")
# your other imports go here
import pygame
sys.stdout = sys.__stdout__

I kindly ask you though to only use this if the program will be launched graphically, to avoid spawning a console, or when you'll leave another message. You can print a shorter or more fitting one, or you can add it in a GUI.

Editing Pygame is not desirable if you are going to distribute your project in any way.

Solution 8 - Python

alt click or ctrl click in pygame in your code and ctrl + f and then paste'pygame 1.9.4 Hello from the pygame community. https://www.pygame.org/contribute.html';... you have to find were that message form that python file so you ctrl + f and type the message or just type https://www.pygame.org .... is this clear

Solution 9 - Python

This works fine for me:

from os import environ
environ['PYGAME_HIDE_SUPPORT_PROMPT'] = '1'

import pygame

You just have to make sure your imports don't get rearranged.

And it has come before any import of anything that imports pygame, not just before your import of pygame.

Solution 10 - Python

Go in pygame's __init__.py file, go at the bottom of that file, and comment out those two print function-

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

However, I would not do that since, pygame community is an open-source community, and they would want as many people as possible, to contribute to pygame, thats why they have this print function at that last. I would not comment it out, if I were you.

Solution 11 - Python

This is one time process to disable it!

Step 1:

  • Run a dummy.py containing following code:
import pygame 
    
pygame.__file__

Step 2:

  • Copy the path of the pygame source code excluding __init__.py
Example:
C:\\Users\\dell\\AppData\\Roaming\\Python\\Python37\\site-packages\\pygame\\

Step 3:

  • Go to the copied location by pasting it into the run dialog box or any other way

Step 4:

  • open __init__.py in any text editor and search for welcome
  • delete the following code from the file:
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')
  • Now save the file and you are good to go!

Solution 12 - Python

You can go into pygame's __init__.py file and comment out the line that causes the message to be printed. It's exactly at line 355. Here is the code that does that.

# Thanks for supporting pygame. Without support now, there won't be pygame 
#later.
if 'PYGAME_HIDE_SUPPORT_PROMPT' not in os.environ:
    print('pygame {} (SDL {}.{}.{}, Python {}.{}.{})'.format(
        ver, *get_sdl_version() + sys.version_info[0:3]
    ))
    print('Hello from the pygame community. 
      https://www.pygame.org/contribute.html')

You can just go ahead and comment those lines out. I have tested it, it does not cause any problems.

But always be thankful for pygame's free and opensource library.

Solution 13 - Python

# 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-pygame

The version installed with the last line will work without announcing its name.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionAaronView Question on Stackoverflow
Solution 1 - PythonEduardo DalapicolaView Answer on Stackoverflow
Solution 2 - PythontsbertalanView Answer on Stackoverflow
Solution 3 - PythonWillView Answer on Stackoverflow
Solution 4 - PythonKalifView Answer on Stackoverflow
Solution 5 - PythonHunaphuView Answer on Stackoverflow
Solution 6 - PythonDaWeView Answer on Stackoverflow
Solution 7 - PythonGugalcrom123View Answer on Stackoverflow
Solution 8 - PythonthenooberView Answer on Stackoverflow
Solution 9 - PythonDarrel LeeView Answer on Stackoverflow
Solution 10 - PythonTusharView Answer on Stackoverflow
Solution 11 - PythonShivam ShandilyaView Answer on Stackoverflow
Solution 12 - PythonDuffyView Answer on Stackoverflow
Solution 13 - Pythonweb33View Answer on Stackoverflow