使用paramiko模块遇SyntaxError报错,脚本运行失败求助
解决paramiko脚本的SyntaxError异常括号问题
报错原因
这个SyntaxError: multiple exception types must be parenthesized错误是Python版本兼容导致的:
- Python 2.x 允许用
except Exception1, Exception2:的格式捕获多个异常 - Python 3.x 强制要求把多个异常类型用括号包裹,并且用
as绑定异常实例,格式为except (Exception1, Exception2) as e:
你修改了第29行的括号但问题依旧,说明脚本中其他位置还存在同样未加括号的多异常捕获代码。
解决步骤
- 全局搜索脚本内的所有
except语句,找出所有类似except paramiko.SSHException, e:或except 异常类型1, 异常类型2:的写法 - 将这些语句全部修改为Python 3.x兼容格式,例如:
# 错误写法 except paramiko.SSHException, e: # 单个异常的正确写法 except (paramiko.SSHException) as e: # 多异常的正确写法 except (paramiko.SSHException, ConnectionError) as e: - 完成所有修改后,重新运行脚本即可。
额外提示
如果该脚本是基于Python 2.x编写的,而你当前使用Python 3.x环境运行,后续可能还会遇到其他版本兼容问题(比如print语句、字符串编码等),需要逐一排查调整。
内容的提问来源于stack exchange,提问作者icode
相关产品推荐
相关产品推荐

