Pandas提示openpyxl版本过低但实际已装高版本的问题排查
问题排查方向
以下是可能导致该问题的几个原因及对应的排查/解决方法:
Python解释器路径不匹配
你在Shell中调用的Python可能不是你预期的/usr/lib64/python3.9版本,系统中可能存在多个Python 3.9实例,或者包安装到了非系统路径中。- 验证:执行以下命令查看当前Python加载的openpyxl版本和路径:
同时执行python3 -c "import openpyxl; print(openpyxl.__version__); print(openpyxl.__file__)"which python3确认当前Python解释器的绝对路径,看是否与你预期的一致。 - 解决:如果路径不符,使用Python解释器的绝对路径运行脚本,例如
/usr/bin/python3.9 your_script.py,或者调整PATH环境变量,让目标Python解释器优先级更高。
- 验证:执行以下命令查看当前Python加载的openpyxl版本和路径:
pip与Python解释器不对应
你使用的pip工具可能不属于目标Python 3.9,导致安装的openpyxl没有进入系统的/usr/lib64/python3.9/site-packages目录。- 验证:执行
pip3.9 --version查看该pip对应的Python版本,确认是否为3.9.15。 - 解决:使用对应版本的pip重新安装openpyxl:
pip3.9 install --upgrade openpyxl==3.0.10
- 验证:执行
用户级site-packages目录干扰
Linux中,用户自行安装的包会默认存放在*~/.local/lib/python3.9/site-packages/*,该目录的包加载优先级高于系统级的/usr/lib64/python3.9/site-packages/,可能此处残留了旧版本的openpyxl。- 验证:执行以下命令列出Python所有的包加载路径:
逐个检查这些路径下的openpyxl,重点查看用户目录下的路径。python3 -c "import site; print(site.getsitepackages())" - 解决:如果发现用户目录下有旧版本openpyxl,直接删除该目录下的
openpyxl文件夹,或者使用对应pip执行pip3.9 uninstall openpyxl卸载用户级安装的包。
- 验证:执行以下命令列出Python所有的包加载路径:
Python字节码缓存残留
Python生成的.pyc字节码文件可能缓存了旧版本openpyxl的引用,导致重装后仍加载旧版本。- 解决:删除脚本所在目录下的
__pycache__文件夹,或者添加-B参数运行脚本禁止生成字节码:python3 -B your_script.py
- 解决:删除脚本所在目录下的
内容的提问来源于stack exchange,提问作者JanisE
相关产品推荐
相关产品推荐

