PyInstaller打包pyttsx3项目报pythoncom模块缺失错误求助
PyInstaller打包pyttsx3项目pythoncom缺失报错解决方案
该报错是因为PyInstaller打包时无法完整采集pywin32库的pythoncom相关依赖资源,仅添加隐藏导入参数无法覆盖全部依赖,可按以下优先级尝试解决方案:
- 第一步先升级对应依赖库,排除版本兼容问题,执行命令:
pip install --upgrade pyinstaller pywin32 - 方案1:使用全量采集pywin32资源的打包命令,直接替换原有打包命令即可:
pyinstaller .\SCREENER.PY --hidden-import pyttsx3.drivers.sapi5 --hidden-import babel.numbers --collect-all pywin32 - 方案2:若方案1仍报错,手动补全依赖动态库:
- 打开当前使用的Python环境安装目录,进入
Lib/site-packages/pywin32_system32路径 - 找到目录下的
pythoncom3XX.dll和pywintypes3XX.dll文件(XX对应Python主版本号,例如Python3.10对应310) - 将这两个dll文件复制到打包生成的
dist/SCREENER文件夹内,和exe文件放在同一目录
- 打开当前使用的Python环境安装目录,进入
- 方案3:若上述方案均不生效,改用spec配置文件打包,兼容性更强:
- 先执行命令生成spec配置文件:
pyi-makespec .\SCREENER.PY - 打开生成的
SCREENER.spec文件,找到hiddenimports配置项,修改为:hiddenimports=['pyttsx3.drivers.sapi5', 'babel.numbers', 'pythoncom', 'win32com', 'win32com.client'] - 保存spec文件后,执行命令用spec文件打包:
pyinstaller SCREENER.spec
- 先执行命令生成spec配置文件:
- 额外适配优化:可在SCREENER.py代码最开头加入两行代码,提前初始化pythoncom避免运行时加载失败:
import pythoncom pythoncom.CoInitialize()
内容的提问来源于stack exchange,提问作者Aryan Gupta
相关产品推荐
相关产品推荐

