close

在使用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

arrow
arrow
    文章標籤
    Python pyinstaller
    全站熱搜

    喬小小 發表在 痞客邦 留言(0) 人氣()