Raspberry Pi 当 运行 来自脚本时 tkinter 应用程序空白屏幕,当 运行 直接来自终端时工作正常

Raspberry Pi tkinter app blank screen when run from script, works fine when run directly from terminal

我使用 Python 和 tkinter 为 Raspberry pi 零创建了一个天气预报显示应用程序。该应用程序使用请求从天气 api 中提取天气,并使用图像和标签显示预报。我 运行 使用 python3 ./myappname.py 的应用程序,一切正常。

我希望此应用程序在每次 Raspberry Pi 重新启动时自动显示。所以我正在编写一个启动应用程序的 bash 脚本。下一步是使用 cron 或自动启动 运行 bash 启动脚本。我用这段代码创建了一个脚本:

/bin/sleep 10 && /usr/bin/python3 /home/pi/myappname.py

我正在 运行使用 sh myscript

设置它

当我 运行 这个脚本时,应用程序加载但页面上没有图像或标签,它是一个空白的白色屏幕。没有错误消息。

当我直接 运行 应用程序时,是什么导致应用程序呈现良好,但当 运行 脚本时出现空白屏幕?

很可能您的脚本正在加载相对路径中的图像。

python ./myappname.py表示当前目录是脚本所在目录,所以有效

但是当运行启动bash脚本时,当前目录可能不是python脚本目录。

在 bash 脚本中的 python 脚本 运行 之前,您需要将目录更改为 python 脚本目录:

#!/bin/bash

cd /home/hi
/bin/sleep 10
/usr/bin/python myappname.py