如何在Raspberry Pi引导上自动运行Python脚本

30

当Pi启动时,有很多技术可以运行脚本,您选择哪种脚本将取决于脚本的功能和期望。在这篇文章中,我’将介绍一种技术,使Pi以Pi用户的身份自动登录并立即执行Python脚本。

与另一种流行方法相比,这具有一个主要优势(请参阅 使用Cron在启动时运行Python脚本),因为在您返回可用的命令行提示符之前,由于终端已启动并且正在运行脚本的文本输出是可见的。

自动登录设置(可选)

第一步是使Pi能够自动登录而无需任何用户干预。此步骤是可选的。

在命令提示符或终端窗口中输入:

sudo raspi-config

followed by 输入.

选择“Boot Options” then “Desktop/CLI” then “Console Autologin”

准备脚本

我的测试脚本叫做“myscript.py”并且位于/ home / pi /。这是其中包含的内容:

#!/usr/bin/python
print("******************************************************")
print("* This is a test script. There are many like it,     *")
print("* but this  上 e is mine. My script is my best friend. *")
print("* It is my life. I must master it as I must master   *")
print("* my life.                                           *")
print("******************************************************")

您可以使用以下命令将其直接下载到您的Pi:

get //bitbucket.org/MattHawkinsUK/rpispy-misc/raw/master/python/myscript.py

我强烈建议您在尝试任何其他脚本之前使此工作正常!

自动运行脚本设置

现在我们需要告诉操作系统为Pi用户运行脚本。在命令提示符或终端窗口中,输入:

sudo nano /etc/profile

滚动到底部并添加以下行:

sudo 蟒蛇 /home/pi/myscript.py

哪里“/home/pi/myscript.py”是脚本的路径。

输入“ Ctrl + X”退出,然后输入“ Y”保存,然后输入“Enter” twice.

无尽的脚本

脚本完成后,您将仅返回命令行。如果您的脚本包含一个无限循环,那么您可能需要在配置文件中使用以下行:

sudo 蟒蛇 /home/pi/myscript.py &

这将允许脚本在后台运行,但是您不会看到任何文本输出。

重新启动并测试

要测试是否有效,请使用以下命令重新启动Pi:

sudo reboot

启动时,您的脚本将运行,您将看到类似以下内容:

自动运行脚本结果

由于技术,我们’如果您已经在Pi用户登录时运行了该脚本,这意味着如果您创建其他终端会话(例如通过SSH),则该脚本将每次运行。

故障排除

如果没有’在这里工作是可以尝试的一些事情:

  • 手动运行脚本并检查其是否正常运行
  • 使用我的示例脚本并检查是否有效
  • 仔细检查初始步骤
分享。

30条留言

  1. 谢谢马特伟大的教程。

    对于陷入黑屏的其他人,这就是我恢复原状的方式。

    当pi启动时,脚本仅运行Ctrl + c即可将您带回到命令行,您可以#删除nano文件中添加的行,并删除#,以使文件恢复为原来的样子。

  2. 非常感谢您提供此解决方案。我们试图在启动时运行3-4天,以运行Python脚本,但这一切都徒劳。这个解决方案解决了。许多thanx。

  3. 感谢您的指导,我的脚本在启动时完美运行!

    我在启动时遇到黑屏的相同问题(可能是由于我的while true loop)。我一直尝试在键盘上按Control-C,但这并没有’工作。我的Mac也拒绝通过SSH连接到pi。我还能尝试什么吗?否则,我将重新安装操作系统,没什么大不了的。

    • 此技术仅适用于执行任务然后退出的脚本。如果它们陷入循环中,则可能会停止引导序列的完成。

  4. 对于那些面临黑屏问题的人
    只是启动馅饼
    允许您的脚本同时运行,按ctrl + alt + f1,然后按ctrl + c
    系统将提示您使用命令提示符进行更改

  5. 你好,

    我正在使用Raspberry Pi 3 B型,今天我想在Pi启动后自动运行Python脚本,但是突然,它说:

    ”-bash:PKG_CONFIG:找不到命令”

    而且它无法继续。

    期待尽快获得您的帮助。

    谢谢,

  6. I’ve ruined my Pi 🙁

    Ctrl + C不’t work.
    Ctrl + Alt + F1键’t work.
    SSH没有’t work as I don’t have the IP.

    我将需要格式化我的Pi。谨慎行事!

  7. 这也适用于.js文件吗?一世’m使用树莓派PI 2,并且似乎按照所有步骤操作。在RPI引导后,我最终什么也没运行。您能帮我解决这些问题吗?谢谢!例如,我的文件在test1.js上,位于/ home / pi

    • 如果是Javascript文件,则必须在浏览器中运行。所以这个方法是’不适合。您将需要启动到GUI,运行浏览器,并使其自动加载带有JS文件的HMTL文件。

  8. 这种方法有一个主要缺陷。它可能会运行脚本的多个实例。这可能会导致奇怪的问题(例如,如果每个脚本都使用多次写入文件)。我被这个咬了,不能’找出根本原因,直到我发布sudo ps aux | grep -i myscript.py。

    I’我仍然在寻找解决方案’t运行python脚本的多个实例。

  9. 阿萨尔·迪瓦内尔(Assar Diwanel)

    请在文章中声明您不能将此功能与循环一起使用。你已经毁了几个人’s pi’现在,不是我的。它’甚至不是供个人使用,而是供公司使用。一世’我花了数周的编程时间,现在我’我被锁定。非常感谢。为什么避风港’您在这么多人说过之后指出,如果您使用循环会发生这种情况吗?

    • I’ve更新了文章,以提及不符合要求的脚本’t退出。重新创建SD卡是使用Pi的全部过程。您自己的编程或许多其他因素可能随时导致数据丢失。开发时,您确实需要定期备份所有工作。

    • Simply edit the profile file using sudo nano /etc/profile and remove the line you added. The downloaded demo script can be deleted like any other file using rm myscript.py.

  10. 解决它。当脚本运行并被空白屏幕锁定时,我执行了以下操作:

    – [Ctrl][Shift][F2]
    – pi [enter]
    –覆盆子[输入](注意:没有字符显示在屏幕上!)

    这给了我命令提示符,在这里我可以重新编辑配置文件以删除其他行
    –须藤nano / etc / profile
    –编辑,删除或散列python脚本(我添加了“&’)

    现在备份并运行,吸取了教训。

  11. 这次真是万分感谢。这是我画框所需要的。
    所有其他告诉我需要进行cronjob的资源对我来说都行不通。

    因此,无论谁使用pi3d PictureFrame.py并想在Raspberry 皮零 W上自动启动它… use this method!!

    最好
    达斯汀

发表评论

该网站使用Akismet减少垃圾邮件。 了解如何处理您的评论数据.