我正在尝试在系统重新启动时自动运行我的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
这会返回相同的权限被拒绝错误。
有人可以帮我解决我在这里做错的事吗?
答案 0 :(得分:-1)
您在本地获得权限被拒绝的事实应该使这更容易调试。第一个问题是你似乎缺少一个/ 变化:
> #! /usr/bin python3.2
到
> #!/usr/bin/python3.2
编辑以回应Joran的评论:
请注意,如果您有以下简单程序(设置为权限755)
#! /usr/bin python
print "Hello world"
以python test.py
运行它将打印出hello world;以./test.py
运行它会返回:-bash: ./test.py: /usr/bin: bad interpreter: Permission denied
(至少在我的系统上;我以为我已经看到其他地方的权限被拒绝),这就是为什么我希望这可以在没有进一步测试的情况下解决问题(假设OP是如何拥有shebang并且不仅仅是粘贴到SO中的工件)
另外,我建议在你的步骤中用实际路径(/ home / pi)替换〜只是为了确保某些地方没有将它扩展到例如root的家(假设/ home / pi不是root用户在RPi上的家)