【发布时间】:2015-03-22 21:31:24
【问题描述】:
我正在尝试在系统重新启动时自动运行我的 python 脚本。我已经关注了很多关于这个主题的其他线程,并认为我很接近,但是得到了一个权限被拒绝的错误。
我的脚本使用 GPIO 和 Tkinter,并且是用 Python 3.2.3 编写的
第一步是我将此行添加到脚本的顶部。
#! /usr/bin python3.2
我看到其他帖子他们做了 /bin/etc python 从我可以告诉这里没有安装 python 并且如果我尝试这样做会引发其他错误。我也尝试了 python 而不是 python 3.2,但我认为我应该有 3.2
然后我去终端运行这个命令。
sudo chmod +x /home/pi/FDRT/stopclock.py
这立即返回,没有任何错误。
然后我修改了 LXDE 自动启动文件
sudo nano ~/etc/xdg/lxsession/LXDE/autostart
我将此行添加到底部。
/usr/bin/sudo ~/FDRT/stopclock.py
然后我重新启动了 pi,它没有做任何事情 在 /home/pi 我打开 .xsession-errors 文件,看到我有一个权限被拒绝错误。
然后我只是尝试在终端窗口中运行相同的命令
/usr/bin/sudo ~/FDRT/stopclock.py
这会返回相同的权限被拒绝错误。
有人可以帮我解决我在这里做错了什么吗?
【问题讨论】:
-
将其添加到
/etc/rc.local...这是最简单的方法(并且总是称为...)(也不要 lxde 条目看起来像@/usr/bin/sudo ...)您还应该始终使用完全限定的路径在那些(即/home/pi/...而不是~) -
另外,您可以在运行脚本之前使用环境变量
export DISPLAY=:0在终端的显示屏上运行它 -
crontab -e然后@reboot pth_to_your_script -
我尝试了完全合格的路径。
/usr/bin/sudo /home/pi/FDRT/stopclock.py这仍然导致权限被拒绝。根据 Foon 的建议,我将脚本的标题更改为#!/usr/bin/python3.2这个错误。我可以#!/usr/bin/ python3.2 -
Padraic 我首先尝试了 crontab 方法,但由于 gpio 和 tkinter 而遇到了问题。从这里返回的错误是 _tkinter.TclError: no display name and no $DISPLAY environment variable。我应该指出,如果我从 IDLE 3 运行我的脚本,它运行良好。
标签: python linux raspberry-pi