以下是我尝试通过ssh运行到我的覆盆子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行,in 对于pygame.event.get()中的事件: pygame.error:视频系统未初始化
有人可以帮我弄清楚如何解决这个错误吗?
答案 0 :(得分:0)
你还没有初始化你的窗口。看起来您可能已经或可能没有对其进行评论:#screen = pygame.display.set_mode((400, 300))
。许多pygame的事件都依赖于窗口。只需取消注释您的屏幕初始化,它应该可以正常工作。
答案 1 :(得分:0)
我知道问题发布已经有一段时间了,但是今天我也遇到了同样的问题。
对我来说, sudo 命令解决了ssh问题。
sudo python code_path.py
答案 2 :(得分:0)
我遇到了类似的问题。当没有X服务器可用时就会出现问题,这就是为什么当您将监视器连接到Raspberry时它可以工作的原因。
一种解决方案是使用X转发选项运行 ssh :
ssh -X pi@raspberry_ip_address
然后您的程序应正常运行:
python your_code.py
希望这对其他人有帮助。