无法让我的python脚本在启动时运行/从raspberry pi

时间:2015-05-19 10:25:34

标签: python linux raspberry-pi shortcut

所以我有一个python脚本,至少我想做这两件事中的一件:

  1. 让它在启动/登录时自动运行
  2. 创建运行脚本的快捷方式
  3. 我已经尝试了我能找到的每一种方法来做这些,但似乎问题每次都或多或少相同。最初它看起来好像程序正在运行,表现为处理器活动大幅增加,但这只会持续几秒钟,然后pi才能恢复无效。如果终端打开,则不显示任何消息。该脚本打开一个pygame窗口,有时(取决于使用的方法)此窗口将在关闭之前显示几秒钟。

    该脚本非常复杂,因为它使用了目录中的图像和模块以及GPIO引脚。

    如果我尝试从终端窗口运行脚本,它只有在我进入其目录时才能正常工作,否则它只是说它无法导入图像并挂起。 (sudo似乎对它是否有效没有任何影响)

    我假设这意味着如果我在运行之前设法让rpi进入脚本目录,它会起作用,但是我不确定这是否可以通过快捷方式或任何“自动启动”方法

    希望如果不让我知道,这一切都很清楚

1 个答案:

答案 0 :(得分:0)

您必须编写简单的脚本来运行您的代码,如下所示:

例如,在/ opt:

中创建目录
cd /opt
mkdir my_bootup_script
cd my_bootup_script
nano my_python_script.py

然后编写python代码。对于这个例子,我尝试了这个:

#!/usr/bin/python
import sys
import Adafruit_DHT
humidity, temperature = Adafruit_DHT.read_retry(11, 4)
if humidity is not None and temperature is not None:
    print 'Temp={0:0.1f}*C  Humidity={1:0.1f}%'.format(temperature, humidity)
else:
    print 'Failed to get reading. Try again!'

然后在相同的文件夹bash脚本中制作例如:

touch my_script_runner.sh
chmod a+x my_script_runner.sh
nano my_script_runner.sh

然后编写bash脚本。对于这个例子,我尝试了这个:

#!/bin/bash
cd /opt/my_bootup_script
sudo /usr/bin/python ./my_python_script.py
exit

尝试运行良好:./ my_script_runner.sh

如果是,请将此脚本添加为启动脚本:

sudo nano /etc/rc.local
# Add Line :
nohup sudo /opt/my_bootup_script/my_script_runner.sh >> /opt/my_bootup_script/my_script_run.log
# Save with ctrl + x and y

重新启动R-Pi:sudo reboot并查看文件夹/ opt / my_bootup_script / for bootup脚本生成的my_script_run.log以获取信息。 这个例子在我的R-Pi上很好用。 Python脚本在第4个GPIO引脚上使用具有温度和湿度传感器DHT11的Adafruit模块。