JuliaPro_v1.5.4-1使用PyCall读取xlsx绘图报XLRDError如何解决
报错原因
xlrd 2.0及以上版本移除了对.xlsx格式文件的读取支持,仅兼容旧版.xls格式文件。你当前PyCall关联的Python环境中安装的xlrd版本过高,因此读取.xlsx文件时触发了该错误。
解决方案
- 方案1:降级xlrd版本
直接在PyCall绑定的Python环境中安装1.2.0版本的xlrd即可兼容xlsx读取,在Julia REPL中执行以下命令:
using PyCall run(`$(PyCall.pyprogramname) -m pip install xlrd==1.2.0`)
- 方案2:更换读取引擎
如果不想降级xlrd,可以使用支持xlsx格式的openpyxl作为读取引擎。如果是通过pandas读取文件,将读取代码修改为指定engine参数即可:
原代码类似pd.read_excel("test.xlsx")改为pd.read_excel("test.xlsx", engine="openpyxl")
如果环境中没有安装openpyxl,先执行安装命令:
using PyCall run(`$(PyCall.pyprogramname) -m pip install openpyxl`)
- 方案3:使用Julia原生库读取
完全规避Python依赖问题,改用Julia原生的XLSX包读取xlsx文件,安装和使用示例如下:
# 安装XLSX包 using Pkg Pkg.add("XLSX") Pkg.add("DataFrames") # 读取文件为DataFrame,可按需指定工作表、读取范围 using XLSX, DataFrames df = XLSX.readtable("你的文件路径.xlsx", "Sheet1") |> DataFrame
内容的提问来源于stack exchange,提问作者LOGwX
相关产品推荐
相关产品推荐

