在使用pyinstaller 打包成exe的執行檔完成後。
執行打包完成後的檔案時會出現錯誤。
Failed to execute script 'pyi_rth_win32comgenpy' due to
unhandled exception:Module 'pythoncom' isn't in frozen
sys.path
使用python 3.10.5 pyinstaller 5.2 時會出現此錯誤
但使用python 3.8.8 pyinstaller 5.2 並不會出現此錯誤
所以應該是python 3.10.5 所造成的,應該要怎麼解決呢
第一種方式
將要加入的DLL檔放在相同目錄下,例如此案例缺少pythoncom310.dll 檔案
就將此檔找出來copy到要生成執行檔的相同目錄,但是要注意一個小細節,也
就是在--add-binary= 的後面不要加'否則會找不到檔案,而是在結厄的地方加入
;'這樣才不會出錯
pyinstaller -F -w xxxxxx.py --add-binary=pythoncom310.dll;'
第二種方式,我覺得這個簡單多了
直接在xxxx.spec 上做更改
打開後直接找到
a = Analysis(
['PDFaddwater.py'],
pathex=[],
binaries=[('C:/Usersxxxxx/AppData/Roaming/Python/Python310/site-packages/pywin32_system32/pythoncom310.dll', '.')],
datas=[],
hiddenimports=[],
hookspath=[],
hooksconfig={},
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False,
)
直接把你缺少的DLL檔置加入到binaries=[()], 大舌號就可以了
然後pyinstaller xxxxx.spec
留言列表