You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Spyder中用PyInstaller生成的exe提示缺少openpyxl.cell._writer模块怎么办?

解决PyInstaller打包exe时出现ModuleNotFoundError: No module named 'openpyxl.cell._writer'的问题

问题情况

脚本在Spyder环境中运行正常,但使用PyInstaller打包为单文件exe后,执行时抛出以下错误:

Traceback (most recent call last):
File "AnalysisTool.py", line 13, in <module>
File "PyInstaller\loader\pyimod02_importers.py", line 419, in exec_module
File "openpyxl\__init__.py", line 7, in <module>
File "PyInstaller\loader\pyimod02_importers.py", line 419, in exec_module
File "openpyxl\workbook\__init__.py", line 4, in <module>
File "PyInstaller\loader\pyimod02_importers.py", line 419, in exec_module
File "openpyxl\workbook\workbook.py", line 9, in <module>
File "PyInstaller\loader\pyimod02_importers.py", line 419, in exec_module
File "openpyxl\worksheet\_write_only.py", line 13, in <module>
File "openpyxl\\worksheet\\_writer.py", line 23, in init openpyxl.worksheet._writer
ModuleNotFoundError: No module named 'openpyxl.cell._writer'
[34476] Failed to execute script 'AnalysisTool' due to unhandled exception!

用户原打包代码:

import PyInstaller.__main__
PyInstaller.__main__.run([
'--onefile',
'--noupx',
'--hidden-import= openpyxl.cell._writer',
'AnalysisTool.py'
])

解决方案

1. 修正--hidden-import参数格式

原参数中等号后存在空格,导致PyInstaller无法正确识别模块名,需去掉空格,同时补充openpyxl的其他内部依赖模块:

import PyInstaller.__main__
PyInstaller.__main__.run([
    '--onefile',
    '--noupx',
    '--hidden-import=openpyxl.cell._writer',
    '--hidden-import=openpyxl.worksheet._writer',
    'AnalysisTool.py'
])

2. 确保openpyxl版本兼容(可选)

如果问题仍存在,尝试重装openpyxl以保证版本与PyInstaller兼容:

pip uninstall openpyxl -y
pip install openpyxl

原因说明

  • PyInstaller的--hidden-import参数要求等号与模块名之间无空格,否则会将空格视为模块名的一部分,导致导入失败。
  • openpyxl部分内部模块采用动态导入方式,PyInstaller的自动依赖检测机制无法捕获这些模块,必须手动通过--hidden-import指定。

内容的提问来源于stack exchange,提问作者devdatta deo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 12:34:51