Pygame无头模式设置

8

我正在使用pygame的手柄API在无头系统上使用手柄,但是pygame需要一个“屏幕”,因此我设置了一个虚拟视频系统来解决这个问题。它一直运行良好,但现在突然出现了这个错误:

Traceback (most recent call last):
  File "compact.py", line 10, in <module>
    screen = display.set_mode((1, 1))
pygame.error: Unable to open a console terminal

这是无头设置,旨在解决此问题。

from pygame import *
import os
import RPi.GPIO as GPIO
os.environ["SDL_VIDEODRIVER"] = "dummy"
screen = display.set_mode((1, 1))
2个回答

8

Pygame试图打开控制台,这意味着您正在通过ssh、cron或其他无法访问控制台的地方运行此脚本。我建议尝试跳过set_mode(因为虚拟驱动程序可能没有可设置的模式)并尝试初始化显示器。您可以尝试以root身份运行它,这可能会给它访问权限。您也可以尝试告诉它使用fbcon。

os.putenv('SDL_VIDEODRIVER', 'fbcon')
pygame.display.init()

谢谢,这对我有用。os.environ["SDL_VIDEODRIVER"] = "dummy" pygame.display.init() - realgt

0

如果您的树莓派没有连接实际显示器,pygame.display将无法工作。但是,有两种方法可以欺骗系统创建虚拟显示器,以便您可以在没有显示器的情况下运行Pygame:

  1. 您可以使用HDMI仿真器虚拟插头来欺骗树莓派认为有显示器连接:enter image description here

  2. 或者,进入/boot文件夹,使用sudo或root访问权限编辑config.txt文件,设置:

hdmi_force_hotplug=1(不带#)

即使没有实际显示器连接,树莓派也会创建一个虚拟显示器。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接