Python dateutil parser报无效语法错误求助:昨日正常今日异常
解决Python dateutil parser的SyntaxError问题
嘿,这个问题我太熟悉了!你遇到的是Python版本和dateutil库版本不兼容的问题,具体来说是老版本的dateutil用了Python2专属语法,而你现在用的是Python3.6,自然就触发报错了。
问题根源
你看报错里的这行代码:
l.append("%s=%s" % (attr, `value`))
这里的`value`是Python2的语法,用来获取变量的字符串表示(等价于repr(value)),但Python3已经彻底移除了这个写法,所以当你在Python3环境里运行只支持Python2的旧版dateutil时,就会抛出SyntaxError。
为什么昨晚能用今天不行?
大概率是你的Python环境悄悄变了:
- 可能之前默认用的是Python2,今天切换成了Python3;
- 或者不小心降级了dateutil库;
- 也可能是切换了虚拟环境,新环境里装的是旧版dateutil。
解决方案
直接升级到支持Python3的dateutil版本就行:
- 先卸载旧版本:
pip uninstall python-dateutil - 安装兼容Python3的新版本(2.0及以上版本都支持Python3,直接装最新版即可):
pip install python-dateutil --upgrade - 验证版本是否正确:
看输出里的pip show python-dateutilVersion字段,只要是2.x或更高版本就没问题。
升级之后,dateutil里的代码会自动用repr(value)代替`value`,语法就符合Python3的要求了,你的代码应该就能正常运行啦。
内容的提问来源于stack exchange,提问作者Sidharth Naik
相关产品推荐
相关产品推荐

