Для события в 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 полагаются на окно. Просто откомментируйте инициализацию экрана, и она должна работать нормально.

Другие вопросы по тегам