迁移Python脚本至新树莓派后出现语法错误,求原因
问题原因分析
出现这个语法错误的核心原因是两台树莓派的Python版本不一致:
- 之前能正常运行代码的树莓派使用的是Python 3.5或更高版本,该版本支持PEP 448引入的列表解包语法
[*cmd, 'FlowTemp', 'temp']; - 新树莓派上的Python版本低于3.5,这个语法在旧版本中属于非法语法,因此触发
SyntaxError。
解决方法
你有两种修复方式:
- 升级Python版本:在新树莓派上安装Python 3.5及以上版本,之后直接运行原代码即可。
- 修改代码兼容旧版本:把列表解包的写法替换成旧版本支持的列表拼接方式,示例如下:
# 原写法 flow_temp = float(check_output([*cmd, 'FlowTemp', 'temp'])) # 替换为兼容写法 flow_temp = float(check_output(cmd + ['FlowTemp', 'temp']))
同理,将另外两处用到[*cmd, ...]的代码都改成cmd + [...]的形式,就能在Python 3.5以下版本正常运行。
内容的提问来源于stack exchange,提问作者Mike
相关产品推荐
相关产品推荐

