我认为这个问题对于从Raspbian Wheezy更新到Jessie的其他Raspberry-Pi用户也很有用 . 带有Tkinter GUI的python程序在Wheezy重启后启动,但不是在Jessie上启动 . 互联网中描述的所有方法都不适合我 . 我做了以下事情:

sudo nano /etc/rc.local

在最后一行(在“退出0”之前)添加以下行:

/etc/init.d/cron/start

这会强制crontab在重新启动时启动 . 之后调用crontab窗口:

sudo crontab -e

以下行添加:

@reboot /home/pi/starter.sh >/home/pi/logs/cronlog 2>&1

这应该在重新启动时执行名为starter.sh的脚本,并在cronlog文件中记录错误 . starter.sh脚本:

#!/bin/bash
sudo python /home/pi/TkinterGUI.py

使这个脚本可执行:

chmod +x /home/pi/starter.sh

检查文件属性 - 是,可执行文件 . 从命令行'/home/pi/starter.sh'执行此脚本使我的TkinterGUI程序启动 . 重启没发生什么事吗? cronlog看起来像这样:

Traceback (most recent call last):
File " TkinterGUI.py", line 354, in <module>
root = Tk()
File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1813, in __init__
self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
_tkinter.TclError: no display name and no $DISPLAY environment variable

它是相同的显示器,唯一的区别是手动启动或重启时自动启动 . 问Google没有给出可用的答案 . 我不做远程访问;我的键盘和显示器直接连接到Raspberry .