我的Pi Zero运行Raspbian Buster Lite,没有任何显示器。它在启动时运行python程序(crontab @reboot条目),如下所示:
os.putenv('SDL_VIDEODRIVER', 'dummy')
pygame.display.init() # error at this line
我必须初始化pygame显示,因为我需要处理Sound对象的结束事件。如果不初始化显示,则不会触发事件。
代码在此行中断,错误为“ pygame.error:无法打开控制台终端”
pygame.display.set_mode((1, 1))
我的代码曾经在以前的Raspbian(Stretch)版本中工作。我已经尝试了各种驱动程序,添加了{/ {1}} /删除了这些驱动程序,但是没有运气。
我知道其他处理相同问题的文章,但是我已经用尽了所有这些方法-将驱动程序更改为fbcon,跳过set_mode行,等等。唯一有效的方法是以root身份运行程序:
@reboot /home/username/launcher.sh >> /home/username/crontab.log 2>&1
但是,从安全角度来看,这是一个坏主意。我宁愿以非特权用户身份运行它。
是否有一种新的破解方法可以使它通过display.init()
?