问题
使用pyinstaller打包exe程序后,出现如下错误:Failed to execute script ‘pyi_rth_win32comgenpy’ due to unhandled exception!
Traceback (most recent call last):
File "Lib\site-packages\PyInstaller\hooks\rthooks\pyi_rth_win32comgenpy.py", line 40, in <module>
File "PyInstaller\loader\pyimod02_importers.py", line 499, in exec_module
File "win32com\__init__.py", line 5, in <module>
ImportError: DLL load failed while importing win32api: 找不到指定的程序。
[4340] Failed to execute script 'pyi_rth_win32comgenpy' due to unhandled exception!
其中,使用的部分第三方库版本:
pyinstaller:5.7.0
pywin32:305
分析过程
同时也把同样脚本发给同事尝试打包,同事打包后的程序居然可以运行!!
pip list查询第三方库版本,我们都是一致的,除了conda库版本,由于我们都是用conda虚拟环境打包的。【同事电脑的conda是4.11.0,我电脑的是22.9.0】
通过报错提示,只能往pyinstaller和pywin32库版本不兼容这个方向解决问题或者升级conda库。
解决方法
- 方法1:卸载conda环境的pywin32库,经过尝试,发现安装228版本的可行。
pip uninstall pywin32
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pywin32==228
- 方法2:升级conda库为最新版本(当前最新版本为22.11.1)
以管理员身份启动 Anaconda Prompt:
conda update conda
conda update --all