树莓派5上Python脚本启动FLIR Lepton相机失败问题排查
问题排查与解决方案
1. 脚本中的直接错误
你在执行相机启动命令时犯了笔误:process2调用的是command1(CPU性能模式设置),而非command2(相机启动命令),这导致相机启动命令根本没被执行,自然不会弹出窗口。
2. GUI程序的DISPLAY环境变量问题
树莓派上的GUI程序依赖DISPLAY环境变量确定输出显示设备。如果Python脚本通过SSH远程执行,或当前环境未正确传递该变量,即使命令执行成功,窗口也无法显示,需要在subprocess中明确指定该变量。
3. 修正后的脚本
import subprocess import os def start_camera(): directory = '/LeptonModule/software/raspberrypi_video' command_build = 'qmake && make' command_cpu = 'sudo sh -c "echo performance > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor"' command_camera = './raspberrypi_video -tl 3' os.chdir(directory) # 仅源码改动时需要重新编译,可根据情况注释 subprocess.run(command_build, shell=True, check=True) subprocess.run(command_cpu, shell=True, check=True) # 传递DISPLAY环境变量,确保GUI窗口正常显示 env = os.environ.copy() env['DISPLAY'] = ':0' # 本地主显示器通常为:0 subprocess.run(command_camera, shell=True, check=True, env=env) print("Camera Started") if __name__ == "__main__": start_camera()
额外注意事项
- 编译命令优化:
qmake && make无需每次启动相机都执行,仅源码改动时重新编译即可,平时可注释该行加快启动速度。 - SSH远程执行:若通过SSH运行脚本,需启用X11转发(SSH连接时加
-X参数),确保远程DISPLAY变量正确。 - 权限配置:确保运行脚本的用户拥有
sudo免密权限(通过visudo配置),避免脚本执行时卡住等待密码输入。
内容的提问来源于stack exchange,提问作者EvanFodemski
相关产品推荐
相关产品推荐

