Python转exe报错找不到openpyxl.utils.dataframe模块该如何解决
问题解决方法
该报错本质是打包工具默认的依赖扫描逻辑遗漏了
openpyxl.utils.dataframe这个子模块,它属于openpyxl的可选功能模块,不在核心依赖链里,所以就算本地Python环境安装了正确版本的openpyxl,打包时也不会被自动包含进去。
- 首先确认本地安装的openpyxl版本在2.4.0以上,只有2.4.0及之后的版本才自带
dataframe_to_rows方法,执行pip show openpyxl即可查看版本号。 - 若使用PyInstaller(含auto-py-to-exe,它是PyInstaller的可视化封装)打包,两种方案可选:
- 打包时显式指定要导入的缺失模块,执行打包命令时加上
--hidden-import "openpyxl.utils.dataframe"参数即可,完整命令示例:pyinstaller --onefile --hidden-import "openpyxl.utils.dataframe" your_script_name.py - 若使用配置文件打包,直接在spec文件的
hiddenimports列表里添加"openpyxl.utils.dataframe"项,再基于spec文件执行打包即可。
- 打包时显式指定要导入的缺失模块,执行打包命令时加上
- 若使用py2exe打包,在setup.py的配置项里添加
includes参数,值为["openpyxl.utils.dataframe"]即可,配置示例:
from distutils.core import setup import py2exe setup( console=['your_script_name.py'], options={ "py2exe": { "includes": ["openpyxl.utils.dataframe"] } } )
- 完成上述配置后重新打包即可解决问题。
内容的提问来源于stack exchange,提问作者Tancredi Busatta
相关产品推荐
相关产品推荐

