Pygameをインポートするときにメッセージが表示されるのはなぜですか。バージョンとウェルカムメッセージが出力されます。メッセージは
"pygame 1.9.4 Hello from the pygame community.
https://www.pygame.org/contribute.html"
このメッセージを無効にするにはどうすればよいですか?
私はそれを行うための自然な方法を見ていませんでした(あなたが見つけることができるこの唯一のGoogleの結果です)が、pygameのインポート中に一時的にstdoutを無効にすることで同じことを達成しました。
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
わたしにはできる:
import os
os.environ['PYGAME_HIDE_SUPPORT_Prompt'] = "hide"
import pygame
ソースコードには、このメッセージの出力を保護する条件が含まれています。
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')
this commit を参照してください
これはかなり最近(2018年10月)追加され、これまでに1.9.4がリリースされました。次のバージョン> 1.9.4がリリースされたら、単にPYGAME_HIDE_SUPPORT_Prompt= ./my_code.py
メッセージを非表示にします。
3.6 32ビットバージョンの場合、pygameライブラリフォルダーに移動できます。
Python36-32\Lib\site-packages\pygame
__ init __。pyファイルを編集し、最後の行を削除してこのメッセージを削除します。
f = pygame.__file__
私にとっては、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()
( Brigand! に感謝)
Pygameの__init__.py
ファイル、そのファイルの下部に移動し、これら2つの印刷機能をコメントアウトします-
print('pygame %s' % ver)
print('Hello from the pygame community. https://www.pygame.org/contribute.html')
ただし、pygameコミュニティはオープンソースコミュニティであり、できるだけ多くの人にpygameに貢献してほしいと思っているので、私はそうしません。私があなただったら、コメントしません。