python - 自动启动时 Tkinter GUI 无法正常运行

标签 python tkinter raspberry-pi

这是我第一次使用 Raspberry Pi 3 和 Python Tkinter 来制作 GUI。

我已经使用 Python 编写了脚本。我的代码使用 Raspberry Pi 3 GPIO 8 和 GPIO 11 作为输入。我有 2 个继电器连接到 2 个输入端子。继电器将充当开关。我的代码将计算继电器已打开的次数并显示在 GUI 中。

我已经使用 Raspberry Pi 3 LxTerminal 对其进行了测试

sudo python /home/pi/Desktop/test.py

GUI 打开并且运行良好。继电器每次切换,计数+1。

然后我决定让它在每次重新启动 Pi 时自动启动。我使用以下技术。

sudo nano /etc/profile

然后将以下代码添加到最后一行并保存。

sudo python /home/pi/Desktop/test.py

我重新启动了 Raspberry Pi,GUI 自动启动。但 GUI响应继电器切换。

我尝试重新启动几次,并且在几次重新启动后工作。然后我尝试再次重新启动,但下次它不再起作用。这个步骤不断地重复。有时 GUI 可以工作,有时则不能。

有人遇到过这样的问题吗?我应该怎样做才能使 GUI 自动启动 100% 正常工作?

注意:

  • 有5V 1A的手机充电器给Pi供电。 (也尝试过使用5V 2.1A)
  • 已连接 HDMI 至 VGA 转换器以连接至显示器
  • GUI 设置为自动启动时没有键盘和鼠标

最佳答案

我有一个 tkinter GUI,可以在我的 Raspberry Pi 上启动时启动。我通过将其添加到自动启动文件来做到这一点。

首先,使脚本可执行。添加

#!/usr/bin/python

作为 python 脚本的第一行。

然后使用此命令使文件可执行

chmod +x /home/pi/Desktop/test.py

现在您应该能够在没有“sudo python”前缀的情况下启动您的程序。只需在终端中输入 /home/pi/Desktop/test.py 即可启动您的程序。

然后打开自动启动文件进行编辑

nano /home/pi/.config/lxsession/LXDE-pi/autostart

并添加

@/home/pi/Desktop/test.py

顺便说一句:您使用“sudo”的方式太多了。您应该很少使用 sudo。如果你使用 sudo 编辑用户文件,你可能会搞砸你的文件权限,这会导致非常奇怪的错误。当你安装某些东西时,你应该需要“sudo”,仅此而已。

关于python - 自动启动时 Tkinter GUI 无法正常运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47395284/

相关文章:

python - 在 SQLite3 DELETE 语句中引用 python 变量

Linux shell 脚本程序在第 29 行后退出?

python - 将 '?' 用于对象信息如何工作?

python - 考虑到python中的一些条件,如何在字符串中插入一个字符

python - 以编程方式获取节点 nodeType 列表 (xml.dom.minidom.Node)

python - Tkinter 如何循环浏览图像?

python - 如何从 Canvas 中获取所有像素?

python 使用 ctypes 处理 dll - 结构 OUT 参数

python 忽略 time.sleep(1)

linux - "-sh: executable_path:not found"是什么意思