Для события в pygame.event.get(): pygame.error: система видео не инициализируется при использовании ssh
Вот код, который я пытаюсь запустить через SSH в мой Raspberry Pi. Обычно он работает нормально, когда клавиатура и монитор подключены непосредственно к Raspberry Pi, но не запускается, когда я использую ssh.
import pygame, sys, time
from pygame.locals import *
pygame.init()
pygame.joystick.init()
joystick = pygame.joystick.Joystick(0)
joystick.init()
#screen = pygame.display.set_mode((400,300))
#pygame.display.set_caption('Hello World')
interval = 0.01
# get count of joysticks=1, axes=27, buttons=19 for DualShock 3
joystick_count = pygame.joystick.get_count()
print("joystick_count")
print(joystick_count)
print("--------------")
numaxes = joystick.get_numaxes()
print("numaxes")
print(numaxes)
print("--------------")
numbuttons = joystick.get_numbuttons()
print("numbuttons")
print(numbuttons)
wprint("--------------")
loopQuit = False
while loopQuit == False:
# test joystick axes
# outstr = ""
# for i in range(0,4):
# axis = joystick.get_axis(i)
# outstr = outstr + str(i) + ":" + str(axis) + "|"
# print(outstr)
# test controller buttons
outstr = ""
for i in range(0,numbuttons):
button = joystick.get_button(i)
outstr = outstr + str(i) + ":" + str(button) + "|"
print(outstr)
for event in pygame.event.get():
if event.type == QUIT:
loopQuit = True
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_ESCAPE:
loopQuit = True
Я получаю ошибку Traceback (последний вызов был последним): файл "testing_joystick.py", строка 47, для события в pygame.event.get(): pygame.error: видеосистема не инициализирована
Может кто-нибудь помочь мне разобраться, как обойти эту ошибку, пожалуйста?
2 ответа
Я знаю, что прошло много времени с тех пор, как вопрос был опубликован, но сегодня я столкнулся с той же проблемой.
Для меня команда sudo решила проблему ssh.
sudo python code_path.py
У меня была похожая проблема, как описано. Проблема возникает, когда X-сервер недоступен, поэтому он работает, когда к Raspberry подключен монитор.
Решение - запустить ssh с опцией X forwarding:
ssh -X pi@raspberry_ip_address
Тогда ваша программа должна работать как обычно:
python your_code.py
Надеюсь, это поможет кому-нибудь еще.
Ну, вы еще не инициализировали свое окно. Похоже, вы могли или не могли это закомментировать: #screen = pygame.display.set_mode((400, 300))
, Многие из событий Pygame полагаются на окно. Просто откомментируйте инициализацию экрана, и она должна работать нормально.