Почему при импортировании pygame он печатает версию и приветственное сообщение. Как удалить его?
Почему появляется сообщение, когда я импортирую pygame, он печатает версию и приветственное сообщение. Сообщение читает
"pygame 1.9.4 Hello from the pygame community.
https://www.pygame.org/contribute.html"
Как отключить это сообщение?
Ответы
Ответ 1
Я не видел естественного способа сделать это (ваш единственный результат Google для этого, который я мог найти), но я сделал то же самое, временно отключив stdout при импорте 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
Здесь альтернатива, предложенная @Mad Physicist:
import contextlib
with contextlib.redirect_stdout(None):
import pygame
Ответ 2
Меня устраивает:
import os
os.environ['PYGAME_HIDE_SUPPORT_PROMPT'] = "hide"
import pygame
Ответ 3
Исходный код содержит условие, защищающее печать этого сообщения:
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')
Смотрите этот коммит
Это было добавлено довольно недавно (октябрь 2018), и до сих пор 1.9.4 был выпущен до этого. Как только выйдет следующая версия> 1.9.4, вы просто сможете запустить свой код с помощью PYGAME_HIDE_SUPPORT_PROMPT=./my_code.py
чтобы скрыть сообщение.
Ответ 4
Вы можете перейти к папке библиотеки pygame, что-то вроде этого для 32-битной версии 3.6:
Python36-32\Lib\site-packages\pygame
и отредактируйте файл __init__.py и удалите последнюю строку, чтобы избавиться от этого сообщения.
Ответ 5
- импорт пигмей
- Получить расположение файла инициализации:
f = pygame.__file__
- Откройте f и закомментируйте печать в последних двух строках файла
Ответ 6
Перейдите в файл pygame __init__.py
, перейдите в конец этого файла и закомментируйте эти две печати function-
print('pygame %s' % ver)
print('Hello from the pygame community. https://www.pygame.org/contribute.html')
Тем не менее, я бы не стал этого делать, поскольку сообщество pygame - это сообщество с открытым исходным кодом, и они хотели бы, чтобы как можно больше людей внесли свой вклад в pygame, поэтому у них есть эта функция печати в последнюю очередь. Я бы не стал это комментировать, если бы я был тобой.
Ответ 7
Я недавно опубликовал pygamesilent
.
Это шим (бесплатный, с открытым исходным кодом), который можно использовать в качестве замены в любом месте, где вы импортируете Pygame. Он использует PYGAME_HIDE_SUPPORT_PROMPT
путь PYGAME_HIDE_SUPPORT_PROMPT
, но делает все это в одном месте, поэтому вам не нужно повторять код в каждом файле в каждом проекте.
Ответ 8
Для меня только это работало в 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()
(спасибо за Разбойника!)
Ответ 9
# 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
Версия, установленная с последней строкой, будет работать без объявления ее имени.