小编Pau*_*mon的帖子

在boot shell脚本中使用覆盆子Pi B +上的tkinter没有显示名称和$ DISPLAY环境变量

如果我做错了,我的第一篇文章如此道歉.

我在python3上使用tkinter编写了一个python脚本,它在IDLE3中运行完全正常.我希望在启动Pi时运行此脚本,因此执行以下过程以使用cron作业运行@reboot. http://www.instructables.com/id/Raspberry-Pi-Launch-Python-script-on-startup/step4/Add-to-your-crontab/

最初我得到了初始化错误,所以我添加了'/ bin/sleep 120;' 到@reboot行,所以它现在读取如下,似乎等待足够长的时间,以便在启动后初始化所有内容.@reboot/bin/sleep 120; sh /home/pi/launcher.sh>/home/pi/logs/cronlog 2>&1

但是在此之后我的cronlog显示以下错误:

回溯(最近通话最后一个):文件"walk.py",第29行,在MyGUI = TK()文件"/usr/lib/python3.2/tkinter/ 初始化的.py",线1701,在初始化 self.tk = _tkinter.create(screenName,baseName,className,interactive,wantobjects,useTk,sync,use)_tkinter.TclError:没有显示名称,没有$ DISPLAY环境变量

现在我在其他线程上看到了这个错误,很多似乎与初始化我不使用的库有关.我想补充一点,我的代码从空闲运行良好,从终端运行良好,我已经制作了launcher.sh并使其可执行,如果我从终端运行'sh launcher.sh'它工作正常,所以launcher.sh shell脚本看起来不错.但在启动时我得到上述错误,我不明白为什么?请帮忙.

我没有这台机器上的代码副本,但我会尝试将其复制并发布作为评论,如果有人认为这将有所帮助.

在此先感谢保罗

以下完整代码


import sys
import tkinter #might not be needed
from tkinter import *
import pymysql
import os.path
import datetime
import json

#Define local database connection
try:
    localdb = pymysql.connect(host="localhost", user="root", passwd="p054169q", db="walk")
except Exception as e:
    sys.exit('Can not locate localdb')

lcur = localdb.cursor()

#Define web database connection (Maybe add later for easy sync) …
Run Code Online (Sandbox Code Playgroud)

boot cron tkinter python-3.x raspberry-pi

6
推荐指数
1
解决办法
5859
查看次数

标签 统计

boot ×1

cron ×1

python-3.x ×1

raspberry-pi ×1

tkinter ×1