• 树莓派登录后运行PYTHON


    网上记录的登录方式

    通过服务

    通过rd.local

    通过 

    通过服务启动,可能会导致PYTHON代码部份未运行(加SLEEP后可能也不行)

    注意完整路径 启动前先测试一下,否则可能启动后无效果

    开机自启动脚本方法之一(.Desktop文件) - 知乎

    【树莓派】设置树莓派开机自动运行python脚本_树莓派开机自启动python程序_努力work,早发paper的博客-CSDN博客

    https://www.cnblogs.com/jakeyChen/p/9295650.html

    baidu google Linux 创建启动器(.Desktop文件) 

    若要求python程序一直运行,则需要在最后添加&,若只需要运行一次,则不需要输入

    .desktop开机启动

    1新建一个xx.desktopy文件,输入如下内容

    将要启动的PY文件 替换 my_startImage.py

    1. [Desktop Entry]
    2. Name=mydeskstartprogram
    3. Comment=Python program
    4. Exec=sudo python3 /home/pi/Desktop/my_startImage.py
    5. #Icon=/home/pi/Desktop/frame45.png
    6. Terminal=true
    7. MultipulArgs=false
    8. Type=Application
    9. Categories=Application;Development;
    10. StartupNotify=ture

    用#号注释掉显示图标,好像并不影响

    2 sudo mkdir /home/pi/.config/autostart

    新建文件夹 在 /home/pi/.config

    3 cp xx.desktop /home/pi.config/autostart

    复制文件到目录下

    开机运行luma.OLED程序

    1. #!/usr/bin/env python
    2. # -*- coding: utf-8 -*-
    3. # Copyright (c) 2014-2023 Richard Hull and contributors
    4. # See LICENSE.rst for details.
    5. # PYTHON_ARGCOMPLETE_OK
    6. from __future__ import unicode_literals
    7. """
    8. A wander through some (all, if you are patient) of the font awesome
    9. TTF glyphs.
    10. See: https://fontawesome.com/license for license details of included
    11. fontawesome-webfont.ttf file
    12. """
    13. import sys
    14. import random
    15. from pathlib import Path
    16. from PIL import ImageFont
    17. from time import sleep
    18. from luma.core.render import canvas
    19. from luma.core.sprite_system import framerate_regulator
    20. from luma.core.interface.serial import i2c, spi
    21. from luma.core.render import canvas
    22. from luma.oled.device import ssd1306
    23. sleep(5)
    24. codes = [
    25. "\uf001", "\uf002", "\uf003", "\uf004", "\uf005", "\uf006", "\uf007",
    26. "\uf008", "\uf009", "\uf00a", "\uf00b", "\uf00c", "\uf00d", "\uf00e",
    27. "\uf010", "\uf011", "\uf012", "\uf013", "\uf014", "\uf015", "\uf016",
    28. "\uf017", "\uf018", "\uf019", "\uf01a", "\uf01b", "\uf01c", "\uf01d",
    29. "\uf01e", "\uf021", "\uf022", "\uf023", "\uf024", "\uf025", "\uf026",
    30. "\uf027", "\uf028", "\uf029", "\uf02a", "\uf02b", "\uf02c", "\uf02d",
    31. "\uf02e", "\uf02f", "\uf030", "\uf031", "\uf032", "\uf033", "\uf034",
    32. "\uf035", "\uf036", "\uf037", "\uf038", "\uf039", "\uf03a", "\uf03b",
    33. "\uf03c", "\uf03d", "\uf03e", "\uf040", "\uf041", "\uf042", "\uf043",
    34. "\uf044", "\uf045", "\uf046", "\uf047", "\uf048", "\uf049", "\uf04a",
    35. "\uf04b", "\uf04c", "\uf04d", "\uf04e", "\uf050", "\uf051", "\uf052",
    36. "\uf053", "\uf054", "\uf055", "\uf056", "\uf057", "\uf058", "\uf059",
    37. "\uf05a", "\uf05b", "\uf05c", "\uf05d", "\uf05e", "\uf060", "\uf061",
    38. "\uf062", "\uf063", "\uf064", "\uf065", "\uf066", "\uf067", "\uf068",
    39. "\uf069", "\uf06a", "\uf06b", "\uf06c", "\uf06d", "\uf06e", "\uf070",
    40. "\uf071", "\uf072", "\uf073", "\uf074", "\uf075", "\uf076", "\uf077",
    41. "\uf078", "\uf079", "\uf07a", "\uf07b", "\uf07c", "\uf07d", "\uf07e",
    42. "\uf080", "\uf081", "\uf082", "\uf083", "\uf084", "\uf085", "\uf086",
    43. "\uf087", "\uf088", "\uf089", "\uf08a", "\uf08b", "\uf08c", "\uf08d",
    44. "\uf08e", "\uf090", "\uf091", "\uf092", "\uf093", "\uf094", "\uf095",
    45. "\uf096", "\uf097", "\uf098", "\uf099", "\uf09a", "\uf09b", "\uf09c",
    46. "\uf09d", "\uf09e", "\uf0a0", "\uf0a1", "\uf0f3", "\uf0a3", "\uf0a4",
    47. "\uf0a5", "\uf0a6", "\uf0a7", "\uf0a8", "\uf0a9", "\uf0aa", "\uf0ab",
    48. "\uf0ac", "\uf0ad", "\uf0ae", "\uf0b0", "\uf0b1", "\uf0b2", "\uf0c0",
    49. "\uf0c1", "\uf0c2", "\uf0c3", "\uf0c4", "\uf0c5", "\uf0c6", "\uf0c7",
    50. "\uf0c8", "\uf0c9", "\uf0ca", "\uf0cb", "\uf0cc", "\uf0cd", "\uf0ce",
    51. "\uf0d0", "\uf0d1", "\uf0d2", "\uf0d3", "\uf0d4", "\uf0d5", "\uf0d6",
    52. "\uf0d7", "\uf0d8", "\uf0d9", "\uf0da", "\uf0db", "\uf0dc", "\uf0dd",
    53. "\uf0de", "\uf0e0", "\uf0e1", "\uf0e2", "\uf0e3", "\uf0e4", "\uf0e5",
    54. "\uf0e6", "\uf0e7", "\uf0e8", "\uf0e9", "\uf0ea", "\uf0eb", "\uf0ec",
    55. "\uf0ed", "\uf0ee", "\uf0f0", "\uf0f1", "\uf0f2", "\uf0a2", "\uf0f4",
    56. "\uf0f5", "\uf0f6", "\uf0f7", "\uf0f8", "\uf0f9", "\uf0fa", "\uf0fb",
    57. "\uf0fc", "\uf0fd", "\uf0fe", "\uf100", "\uf101", "\uf102", "\uf103",
    58. "\uf104", "\uf105", "\uf106", "\uf107", "\uf108", "\uf109", "\uf10a",
    59. "\uf10b", "\uf10c", "\uf10d", "\uf10e", "\uf110", "\uf111", "\uf112",
    60. "\uf113", "\uf114", "\uf115", "\uf118", "\uf119", "\uf11a", "\uf11b",
    61. "\uf11c", "\uf11d", "\uf11e", "\uf120", "\uf121", "\uf122", "\uf123",
    62. "\uf124", "\uf125", "\uf126", "\uf127", "\uf128", "\uf129", "\uf12a",
    63. "\uf12b", "\uf12c", "\uf12d", "\uf12e", "\uf130", "\uf131", "\uf132",
    64. "\uf133", "\uf134", "\uf135", "\uf136", "\uf137", "\uf138", "\uf139",
    65. "\uf13a", "\uf13b", "\uf13c", "\uf13d", "\uf13e", "\uf140", "\uf141",
    66. "\uf142", "\uf143", "\uf144", "\uf145", "\uf146", "\uf147", "\uf148",
    67. "\uf149", "\uf14a", "\uf14b", "\uf14c", "\uf14d", "\uf14e", "\uf150",
    68. "\uf151", "\uf152", "\uf153", "\uf154", "\uf155", "\uf156", "\uf157",
    69. "\uf158", "\uf159", "\uf15a", "\uf15b", "\uf15c", "\uf15d", "\uf15e",
    70. "\uf160", "\uf161", "\uf162", "\uf163", "\uf164", "\uf165", "\uf166",
    71. "\uf167", "\uf168", "\uf169", "\uf16a", "\uf16b", "\uf16c", "\uf16d",
    72. "\uf16e", "\uf170", "\uf171", "\uf172", "\uf173", "\uf174", "\uf175",
    73. "\uf176", "\uf177", "\uf178", "\uf179", "\uf17a", "\uf17b", "\uf17c",
    74. "\uf17d", "\uf17e", "\uf180", "\uf181", "\uf182", "\uf183", "\uf184",
    75. "\uf185", "\uf186", "\uf187", "\uf188", "\uf189", "\uf18a", "\uf18b",
    76. "\uf18c", "\uf18d", "\uf18e", "\uf190", "\uf191", "\uf192", "\uf193",
    77. "\uf194", "\uf195", "\uf196", "\uf197", "\uf198", "\uf199", "\uf19a",
    78. "\uf19b", "\uf19c", "\uf19d", "\uf19e", "\uf1a0", "\uf1a1", "\uf1a2",
    79. "\uf1a3", "\uf1a4", "\uf1a5", "\uf1a6", "\uf1a7", "\uf1a8", "\uf1a9",
    80. "\uf1aa", "\uf1ab", "\uf1ac", "\uf1ad", "\uf1ae", "\uf1b0", "\uf1b1",
    81. "\uf1b2", "\uf1b3", "\uf1b4", "\uf1b5", "\uf1b6", "\uf1b7", "\uf1b8",
    82. "\uf1b9", "\uf1ba", "\uf1bb", "\uf1bc", "\uf1bd", "\uf1be", "\uf1c0",
    83. "\uf1c1", "\uf1c2", "\uf1c3", "\uf1c4", "\uf1c5", "\uf1c6", "\uf1c7",
    84. "\uf1c8", "\uf1c9", "\uf1ca", "\uf1cb", "\uf1cc", "\uf1cd", "\uf1ce",
    85. "\uf1d0", "\uf1d1", "\uf1d2", "\uf1d3", "\uf1d4", "\uf1d5", "\uf1d6",
    86. "\uf1d7", "\uf1d8", "\uf1d9", "\uf1da", "\uf1db", "\uf1dc", "\uf1dd",
    87. "\uf1de", "\uf1e0", "\uf1e1", "\uf1e2", "\uf1e3", "\uf1e4", "\uf1e5",
    88. "\uf1e6", "\uf1e7", "\uf1e8", "\uf1e9", "\uf1ea", "\uf1eb", "\uf1ec",
    89. "\uf1ed", "\uf1ee", "\uf1f0", "\uf1f1", "\uf1f2", "\uf1f3", "\uf1f4",
    90. "\uf1f5", "\uf1f6", "\uf1f7", "\uf1f8", "\uf1f9", "\uf1fa", "\uf1fb",
    91. "\uf1fc", "\uf1fd", "\uf1fe", "\uf200", "\uf201", "\uf202", "\uf203",
    92. "\uf204", "\uf205", "\uf206", "\uf207", "\uf208", "\uf209", "\uf20a",
    93. "\uf20b", "\uf20c", "\uf20d", "\uf20e", "\uf210", "\uf211", "\uf212",
    94. "\uf213", "\uf214", "\uf215", "\uf216", "\uf217", "\uf218", "\uf219",
    95. "\uf21a", "\uf21b", "\uf21c", "\uf21d", "\uf21e", "\uf221", "\uf222",
    96. "\uf223", "\uf224", "\uf225", "\uf226", "\uf227", "\uf228", "\uf229",
    97. "\uf22a", "\uf22b", "\uf22c", "\uf22d", "\uf230", "\uf231", "\uf232",
    98. "\uf233", "\uf234", "\uf235", "\uf236", "\uf237", "\uf238", "\uf239",
    99. "\uf23a", "\uf23b", "\uf23c", "\uf23d", "\uf23e", "\uf240", "\uf241",
    100. "\uf242", "\uf243", "\uf244", "\uf245", "\uf246", "\uf247", "\uf248",
    101. "\uf249", "\uf24a", "\uf24b", "\uf24c", "\uf24d", "\uf24e", "\uf250",
    102. "\uf251", "\uf252", "\uf253", "\uf254", "\uf255", "\uf256", "\uf257",
    103. "\uf258", "\uf259", "\uf25a", "\uf25b", "\uf25c", "\uf25d", "\uf25e",
    104. "\uf260", "\uf261", "\uf262", "\uf263", "\uf264", "\uf265", "\uf266",
    105. "\uf267", "\uf268", "\uf269", "\uf26a", "\uf26b", "\uf26c", "\uf26d",
    106. "\uf26e", "\uf270", "\uf271", "\uf272", "\uf273", "\uf274", "\uf275",
    107. "\uf276", "\uf277", "\uf278", "\uf279", "\uf27a", "\uf27b", "\uf27c",
    108. "\uf27d", "\uf27e", "\uf280", "\uf281", "\uf282", "\uf283", "\uf284",
    109. "\uf285", "\uf286", "\uf287", "\uf288", "\uf289", "\uf28a", "\uf28b",
    110. "\uf28c", "\uf28d", "\uf28e", "\uf290", "\uf291", "\uf292", "\uf293",
    111. "\uf294", "\uf295", "\uf296", "\uf297", "\uf298", "\uf299", "\uf29a",
    112. "\uf29b", "\uf29c", "\uf29d", "\uf29e", "\uf2a0", "\uf2a1", "\uf2a2",
    113. "\uf2a3", "\uf2a4", "\uf2a5", "\uf2a6", "\uf2a7", "\uf2a8", "\uf2a9",
    114. "\uf2aa", "\uf2ab", "\uf2ac", "\uf2ad", "\uf2ae", "\uf2b0", "\uf2b1",
    115. "\uf2b2", "\uf2b3", "\uf2b4", "\uf2b5", "\uf2b6", "\uf2b7", "\uf2b8",
    116. "\uf2b9", "\uf2ba", "\uf2bb", "\uf2bc", "\uf2bd", "\uf2be", "\uf2c0",
    117. "\uf2c1", "\uf2c2", "\uf2c3", "\uf2c4", "\uf2c5", "\uf2c6", "\uf2c7",
    118. "\uf2c8", "\uf2c9", "\uf2ca", "\uf2cb", "\uf2cc", "\uf2cd", "\uf2ce",
    119. "\uf2d0", "\uf2d1", "\uf2d2", "\uf2d3", "\uf2d4", "\uf2d5", "\uf2d6",
    120. "\uf2d7", "\uf2d8", "\uf2d9", "\uf2da", "\uf2db", "\uf2dc", "\uf2dd",
    121. "\uf2de", "\uf2e0"
    122. ]
    123. def make_font(name, size):
    124. font_path = str(Path(__file__).resolve().parent.joinpath('fonts', name))
    125. return ImageFont.truetype(font_path, size)
    126. def infinite_shuffle(arr):
    127. copy = list(arr)
    128. while True:
    129. random.shuffle(copy)
    130. for elem in copy:
    131. yield elem
    132. serial = spi(device=0, port=0)
    133. device = ssd1306(serial)
    134. def main(num_iterations=sys.maxsize):
    135. regulator = framerate_regulator(fps=1)
    136. font = ImageFont.truetype("/home/pi/Desktop/fonts/fontawesome-webfont.ttf",device.height-12 )
    137. for code in infinite_shuffle(codes):
    138. with regulator:
    139. num_iterations -= 1
    140. if num_iterations == 0:
    141. break
    142. with canvas(device) as draw:
    143. left, top, right, bottom = draw.textbbox((0, 0), code, font)
    144. w, h = right - left, bottom - top
    145. left = (device.width - w) / 2
    146. top = (device.height - h) / 2
    147. draw.text((left, top), text=code, font=font, fill="white")
    148. if __name__ == "__main__":
    149. try:
    150. main()
    151. except KeyboardInterrupt:
    152. GPIO.cleanup()
    153. pass

    https://shumeipai.nxez.com/2023/05/13/run-a-program-on-your-raspberry-pi-at-startup.html

    方法 2:.bashrc 配置

    第二种方法是修改 .bashrc 文件。

    sudo nano /home/pi/.bashrc
    

    在 /home/pi/.bashrc 文件的末尾添加启动命令文本。

    echo Running at boot 
    sudo python /home/pi/sample.py
    

    上面的 echo 命令用于显示 .bashrc 文件中的脚本已经开始运行。

    Bash RC 配置程序会在树莓派启动时自动运行。.bashrc 文件中的命令在运行时会打开一个新的终端窗口。

  • 相关阅读:
    数学建模学习(88):飞蛾扑火算法(WFO)寻优
    雷电模拟器上使用第一个frida(二)之su超级权限
    GIS跟踪监管系统
    【300+精选大厂面试题持续分享】大数据运维尖刀面试题专栏(二)
    【JVM】双亲委派机制
    51单片机 LCD1602
    openpnp - use STM32 arduino on SchultzController
    leecode#查找重复的电子邮箱#从不订购的客户#颠倒二进制数#位1的个数
    Day3 最短路 最小生成树 拓扑排序
    【Linux operation 55】centos 9 steam 在线安装docker
  • 原文地址:https://blog.csdn.net/qq_39239990/article/details/132731129