Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 无头树莓皮零上的Pygame显示初始化(树莓巴斯特Lite)_Python_Raspberry Pi_Pygame_Raspberry Pi Zero_Debian Buster - Fatal编程技术网

Python 无头树莓皮零上的Pygame显示初始化(树莓巴斯特Lite)

Python 无头树莓皮零上的Pygame显示初始化(树莓巴斯特Lite),python,raspberry-pi,pygame,raspberry-pi-zero,debian-buster,Python,Raspberry Pi,Pygame,Raspberry Pi Zero,Debian Buster,我有Pi Zero运行Raspbian Buster Lite,没有附加显示器。它在启动时运行python程序(crontab@reboot entry),如下所示: @reboot sudo su username/home/username/launcher.sh>/home/username/crontab.log 2>&1 我必须初始化pygame显示,因为我需要处理声音对象结束事件。如果不初始化显示,则不会触发事件 代码在此行中断,错误为“pygame.error:无法打开控制台终端”

我有Pi Zero运行Raspbian Buster Lite,没有附加显示器。它在启动时运行python程序(crontab@reboot entry),如下所示:

@reboot sudo su username/home/username/launcher.sh>/home/username/crontab.log 2>&1

我必须初始化pygame显示,因为我需要处理声音对象结束事件。如果不初始化显示,则不会触发事件

代码在此行中断,错误为“pygame.error:无法打开控制台终端”

我的代码在以前的Raspbian(Stretch)版本中使用。我尝试过各种驱动程序,添加/删除了
pygame.display.set_模式((1,1))
,但运气不好

我知道其他帖子也有同样的问题,但我已经用尽了所有这些方法——将驱动程序更改为fbcon,跳过set_模式行,等等。唯一有效的方法是以root用户身份运行程序:

@reboot/home/username/launcher.sh>/home/username/crontab.log 2>&1

但从安全角度来看,这是个坏主意。我宁愿以非特权用户的身份运行它


是否有一种新的破解方法让它通过 Stutial.In()/<代码>?/p>这不是一个解决方案,但是如果你不能以根开始工作,那么你也可以考虑在启动后丢弃特权。至少这会停止将执行保持为root的脚本。

    os.putenv('SDL_VIDEODRIVER', 'dummy')
    pygame.display.init()  # error at this line