我有以下问题:使用运行Raspbian Jessie(版本4.4.26-v7 +)的RaspPi 3B,我希望在启动时执行自写python脚本的GUI。
我知道这个问题已经在这个网站以及其他网站上被问到过,但是由于Raspbian不断变化并且在为我工作之前,没有提出任何建议的解决方案(请参阅下文),我想再次提出它。
据我了解,我需要加载XServer并随后执行脚本。这应该发生,而不是加载整个桌面。
实现此目的的一种方法应该是通过LXDE自动启动文件(如本答案所述)。我编辑了文件/etc/xdg/lxsession/LXDE-pi/autostart
以及文件/etc/xdg/lxsession/LXDE/autostart
(前者最初包含四行,而不是所引用的文章中的建议)—添加了行@sudo python /full/path/to/file.py
和@openbox
,但是我的Pi仍然引导到桌面,并且根本不会自动执行脚本。注释:对于其中一个文件和两个文件,我只尝试了脚本行和脚本行以及openbox行。
另一种策略涉及rc.local文件(如官方文档中所建议)。但是,仅添加python /full/path/to/file.py &
不起作用(因为仍然缺少我的GUI),并且进一步添加startx
没有帮助,因为我显然无法将startx与python脚本链接,因此前者在启动后立即关闭。
有人建议,(另外)应使用.xinitrc。但是,这也不起作用:
su -c python /full/path/to/file.py pi
最后,但并非最不重要的一点是,它应该可以通过init.d使用-但我还没有找到详细的信息。
我真的很感谢向正确方向的任何提示。我的错误在哪里?我的rc.local或.xinitrc中的行应如何显示?还是与切换到像素有关的重大更改,我应该尝试其他方法吗?
一些其他信息:脚本需要sudo权限。它是用Python 2.7编写的,GUI使用的是Tkinter。GUI完全填满了屏幕,因此背景是无关紧要的。该脚本应该永远运行(或者直到它被用户通过GUI输入停止为止),并使用wifi和以太网等系统服务。
更多信息:一切都在本地进行。
澄清:到目前为止,我已经花了8个多小时在网上搜索,从不同的起点尝试教程或将它们混合在一起。我得出的结论是,如果我的脚本(以像素启动时效果很好)在非桌面环境中运行(我怀疑)不起作用,或者需要新的教程,因为2016年10月更改为Raspbian使所有较旧的教程都过时了。此外,挑战不在于彼此独立地启动脚本或启动Xserver(或类似的东西),而在于两者都链接在一起,以便脚本将使用Xserver创建的显示。