Python 为什么导入pygame时会打印版本和欢迎信息。如何删除它?
为什么在我导入pygame时会有一条消息,它会打印版本和欢迎消息。消息是Python 为什么导入pygame时会打印版本和欢迎信息。如何删除它?,python,terminal,pygame,Python,Terminal,Pygame,为什么在我导入pygame时会有一条消息,它会打印版本和欢迎消息。消息是 "pygame 1.9.4 Hello from the pygame community. https://www.pygame.org/contribute.html" 如何禁用此消息?我没有看到一种自然的方法(你的是我能找到的唯一一个谷歌结果),但我在导入pygame时临时禁用了stdout,实现了同样的效果 导入操作系统,系统 将open(os.devnull,'w')作为f: #禁用标准输出 oldstdo
"pygame 1.9.4 Hello from the pygame community.
https://www.pygame.org/contribute.html"
如何禁用此消息?我没有看到一种自然的方法(你的是我能找到的唯一一个谷歌结果),但我在导入pygame时临时禁用了stdout,实现了同样的效果 导入操作系统,系统 将open(os.devnull,'w')作为f: #禁用标准输出 oldstdout=sys.stdout sys.stdout=f 导入pygame #启用标准输出 sys.stdout=旧stdout 以下是@Mad Physicast建议的备选方案:
导入上下文库
使用contextlib.redirect\u stdout(无):
导入pygame
您可以导航到pygame库文件夹,类似于3.6 32位版本:
Python36-32\Lib\site-packages\pygame
编辑\uuuu init\uuuuu.py文件并删除最后一行以删除此消息
f=pygame.\uuuu文件\uuuuu
与最后一行一起安装的版本将在不公布其名称的情况下工作。源代码包含保护打印此消息的条件:
如果操作系统环境中没有“PYGAME\u HIDE\u SUPPORT\u PROMPT”:
打印('pygame%s'%ver)
打印('来自pygame社区的您好。https://www.pygame.org/contribute.html')
看
这是最近(2018年10月)添加的,到目前为止,1.9.4是在此之前发布的。下一个版本>1.9.4发布后,您只需使用
PYGAME\u HIDE\u SUPPORT\u PROMPT=./my\u code.py
运行代码即可隐藏消息。进入PYGAME的\u init\u.py
文件,进入该文件的底部,并注释掉这两个打印函数-
print('pygame %s' % ver)
print('Hello from the pygame community. https://www.pygame.org/contribute.html')
然而,我不会这么做,因为pygame社区是一个开源社区,他们希望尽可能多的人为pygame贡献力量,这就是为什么他们最后有了这个打印功能。如果我是你的话,我不会把它说出来 这对我很有用:
import os
os.environ['PYGAME_HIDE_SUPPORT_PROMPT'] = "hide"
import pygame
对我来说,只有这一点在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()
(感谢)这是一次禁用它的过程 步骤1:
- 运行包含以下代码的dummy.py:
导入pygame
pygame.\uu文件__
步骤2:
- 复制pygame源代码的路径,不包括
\uuuu init\uuuu.py
- 通过将复制的位置粘贴到“运行”对话框或任何其他方式转到复制的位置
- 在任何文本编辑器中打开
,然后搜索欢迎\uuuuu init\uuuuuu.py
- 从文件中删除以下代码:
如果操作系统环境中没有“PYGAME\u HIDE\u SUPPORT\u PROMPT”:
打印('pygame%s'%ver)
打印('来自pygame社区的您好。https://www.pygame.org/contribute.html')
- 现在保存文件,您就可以开始了李>
contextlib.redirect\u stdout(无)
以获取首选项。一般来说,进口和生产线较少。顺便说一句,contextlib.redirect_stdout是一个python3+的东西,而不是在python2中使用contextlib.redirect_stdout(无),我的SSH光标消失。对我来说,这是有效的:@ParasKorat对我来说似乎是不言自明的。如果我们使用pyinstaller将.py文件的.exe文件设置为py文件,则在未安装python的计算机上它会崩溃。这不仅可以精确定位到正确的路径,而且还可以工作。:)谢谢,GuyonStackOverflow至少在PyGame的最新版本中,您可以简单地设置一个环境变量,这要简洁得多:)请参见Eduardos answer。当您从moviepy.editor导入视频文件剪辑时,Eduardos answer将无法工作。
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()
C:\\Users\\dell\\AppData\\Roaming\\Python\\Python37\\site-packages\\pygame\\