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

PyInstaller生成的EXE运行失败:PIL_imaging.pyd解压错误求助

解决PyInstaller打包后PIL_imaging.pyd解压失败的问题

问题分析

报错[3344] Failed to extract PIL_imaging.cp310-win_amd64.pyd: decompression resulted in return code -1!,本质是PyInstaller解压打包的二进制文件时失败,大概率和PIL库的打包处理逻辑、压缩设置或缓存文件损坏有关。

解决方案

1. 清理缓存后重新打包

PyInstaller的缓存文件可能损坏,导致生成的EXE存在异常:

  • 删除脚本目录下的build、dist文件夹,以及自动生成的*.spec文件
  • 用干净的命令重新打包,示例:
    pyinstaller --onefile --windowed your_script_name.py
    

2. 禁用压缩功能

PyInstaller默认的压缩算法可能和PIL的二进制文件冲突,尝试关闭压缩:

pyinstaller --onefile --windowed --noconsole --compress=0 your_script_name.py

--compress=0会让EXE体积变大,但能避免解压错误。

3. 手动指定PIL的pyd文件路径

找到Python环境中PIL_imaging.cp310-win_amd64.pyd的位置(通常在Lib\site-packages\PIL目录下),打包时用--add-data参数强制包含:

pyinstaller --onefile --windowed --add-data "C:\Python310\Lib\site-packages\PIL\PIL_imaging.cp310-win_amd64.pyd;PIL" your_script_name.py

注意Windows系统下路径分隔符用;。

4. 调整Pillow版本

部分Pillow版本和PyInstaller存在兼容性问题,尝试切换到稳定版本:

  • 卸载当前版本:
    pip uninstall pillow -y
    
  • 安装兼容版本(比如9.5.0):
    pip install pillow==9.5.0
    

完成后重新打包。

5. 自定义.spec文件配置

如果上述方法无效,生成.spec文件后手动修改配置:

  1. 生成spec文件:
    pyinstaller your_script_name.py
    
  2. 打开生成的your_script_name.spec,在Analysis段添加PIL文件路径并排除UPX压缩:
    a = Analysis(
        ['your_script_name.py'],
        datas=[('C:\Python310\Lib\site-packages\PIL\PIL_imaging.cp310-win_amd64.pyd', 'PIL')],
        upx_exclude=['PIL_imaging.cp310-win_amd64.pyd'],
        # 保留原有其他配置
    )
    
  3. 用spec文件重新打包:
    pyinstaller your_script_name.spec
    

额外检查

  • 确认Python环境是64位(和报错的win_amd64对应),避免位数不匹配
  • 打包时关闭杀毒软件,部分杀毒软件会拦截或修改PyInstaller生成的EXE文件

内容的提问来源于stack exchange,提问作者Phillip Wood

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 22:02:51