Python导入xlrd库时触发SyntaxError无效语法报错问题
报错原因
这个语法错误是Python和xlrd版本不匹配导致的。
报错指向的print "EXTERNSHEET(b7-):"是Python 2的专属语法——Python 3中print是内置函数,调用必须加括号,出现这个报错说明你当前跑代码用的是Python 3环境,但环境里装的是仅适配Python 2的老旧xlrd版本,导入时解析源码直接失败。之前能正常运行,一般是切换了虚拟环境、安装其他依赖时联动降级/覆盖了xlrd版本导致的。
修复步骤
- 先确认当前代码运行的解释器位置,避免装包装到别的环境里。如果用的是IPython/Jupyter,在单元格里执行下面的代码就能拿到当前解释器的完整路径:
import sys print(sys.executable)
- 卸载当前环境里的错误版本xlrd,根据自己用的包管理器执行对应命令:
用pip管理包就执行:
用Anaconda管理包就执行:pip uninstall xlrd -yconda remove xlrd -y - 重新安装适配Python 3的xlrd版本:
- 如果需要读取
.xlsx格式的Excel文件,不要装2.0.0及以上版本——xlrd从2.0.0开始移除了xlsx格式支持,仅保留.xls格式读取能力,直接装1.2.0稳定版即可,兼容性最好:pip install xlrd==1.2.0 - 如果只需要处理
.xls格式的文件,直接安装最新版就行:pip install xlrd
- 如果需要读取
安装完成后重新执行导入代码就能正常运行。
内容的提问来源于stack exchange,提问作者Marco Andres Alarcon Sierra
相关产品推荐
相关产品推荐

