python - 树莓派 : Auto run GUI on boot

标签 python user-interface terminal raspberry-pi

我想运行一个 python 脚本,它在启动时执行 GUI(当 pi 启动时)。但是我在屏幕上看不到任何 GUI,但是当我打开终端时,我的程序会自动执行并出现 GUI。另外,我的程序在执行时需要互联网连接,但 pi 稍后连接到 wifi,我的脚本首先执行并以不连接到互联网结束。

在 pi 正确启动并且 pi 连接到互联网后,我的 python 脚本有什么办法执行

最佳答案

在不了解 Pi 的情况下进行设置有点困难。但假设您正在以其默认的“桌面”模式运行 raspbian:

  1. 通过 ssh 在 Pi 上打开终端或连接显示器/键盘。
  2. 首先我们需要允许您自动登录,因此sudo nano /etc/inittab打开 inittab 进行编辑。
  3. 查找行 1:2345:respawn:/sbin/getty 115200 tty1并将其更改为 #1:2345:respawn:/sbin/getty 115200 tty1
  4. 在该行下添加 1:2345:respawn:/bin/login -f pi tty1 </dev/tty1 >/dev/tty1 2>&1 。输入 Ctrl+O,然后输入 Ctrl+X 保存并退出
  5. 接下来,我们可以编辑rc.local。 sudo nano /etc/rc.local
  6. 添加一行su -l pi -c startx (将 pi 替换为您要启动的用户名)在 exit 0 上方线。这将在启动时启动 X,从而允许其他应用程序使用图形界面。
  7. 将要运行的命令添加到上一行下方(例如 python /path/to/mycoolscript.py & ),但仍在 exit 0 上方线。
    注意 &包含在这里。这会“ fork ”进程,即使您的脚本尚未退出,也允许其他命令运行。再次按 Ctrl+O 和 Ctrl+X 保存并退出。

现在,当您打开 Pi 时,它会自动登录、启动 X,然后启动您编写的 python 脚本!

Also, my program requires an internet connection on execution but pi connects to wifi later and my script executes first and ends with not connecting to the internet.

这应该在脚本本身中解决。创建一个简单的while检查 Internet 访问、等待并重复直到 wifi 连接的循环。

关于python - 树莓派 : Auto run GUI on boot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41021109/

相关文章:

python - wxPython:手动调用事件

linux - 从 TypeScript 运行任何 Linux 终端命令?

python - 在 Python3 中将小部件应用程序作为线程启动?

python - TypeError : list indices must be integers, not str,while parsing json

c# - 将 SolidColorBrush 绑定(bind)到 ControlTemplate 背景

java - 无需创建新对象即可创建文本菜单的优化方法

java - 如何从终端接收输入并正确使用它

python - 防止 Visual Studio Code 激活 Python 虚拟环境

python - 如何在不丧失键盘/鼠标控制的情况下实现自动化(类似于 selenium 的受控窗口)

python - 解析 YAML,返回行号