树莓派Python脚本运行正常,创建快捷方式后ConfigParser报无section错误
问题解决:快捷方式/bash脚本启动Python脚本时ConfigParser读取配置文件失败
问题原因
手动运行脚本时,工作目录是脚本所在的/home/pi/KeymasterGame,所以config1.read("config1.ini")能找到同目录下的配置文件;但通过bash脚本或快捷方式启动时,工作目录是执行启动脚本的目录(比如你的主目录/home/pi),此时相对路径"config1.ini"指向的是/home/pi/config1.ini,而非脚本所在目录的配置文件,导致ConfigParser读取不到有效内容,抛出NoSectionError。
解决方案
方案1:修改Python脚本,使用绝对路径读取配置文件
通过os模块获取脚本的绝对路径,拼接配置文件路径,确保无论从哪个目录启动都能找到配置文件:
# 替换原有的config1.read("config1.ini")代码 script_dir = os.path.dirname(os.path.abspath(__file__)) config_file_path = os.path.join(script_dir, "config1.ini") config1.read(config_file_path)
方案2:修改bash脚本,先切换到脚本所在目录再执行
更新short.sh脚本,先进入脚本所在目录,再执行Python脚本:
#!/bin/bash cd /home/pi/KeymasterGame python3.9 keymaster.py
两种方案任选其一即可解决问题,推荐方案1,它不依赖启动脚本的工作目录,适用性更强。
内容的提问来源于stack exchange,提问作者ryan jones
相关产品推荐
相关产品推荐

