Очевидно, что версия pygame, которую я использую, имеет проблему, в которой операторы отладки остались в - How to suppress console output in Python? при использовании joystick.get_axis
. В этом и есть проблема, но я не смог использовать методы, представленные в этих ответах. Каждый из методов все еще печатал SDL_JoystickGetAxis value
.Подавление вывода отладки pygame (выход в консоль)
Я также пробовал this blog, но я все еще выводил на консоль. Думаю, это может быть проблема с stdout
против stderr
, я попытался подавить stdout
, затем stderr
, то и то и другое, но безрезультатно.
В основном мой код постоянно печатает SDL_JoystickGetAxis value:0
или независимо от его значения. Как я могу подавить эти отладочные заявления?
import os
import sys
from contextlib import contextmanager
@contextmanager
def suppress_stdout():
with open(os.devnull, 'w') as devnull:
old_stdout = sys.stdout
sys.stdout = devnull
try:
yield
finally:
sys.stdout = old_stdout
Позже в моем коде я использую эту функцию:
if speedchange == False and headingchange == False:
time.sleep(0.1)
with suppress_stdout():
speed_ax = joys.get_axis(1)
head_ax = joys.get_axis(0)
Какие еще выводит отладочные операторы
Как вы используете этот код из этого блога? –