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

PyInstaller添加图标时出现OSError [Errno22]错误求助

解决PyInstaller添加ICO图标时的OSError [Errno 22]问题

嘿,我之前帮朋友排查过一模一样的问题,你猜怎么着?基本就是你的mysnake.ico文件不符合PyInstaller的要求导致的。下面是几个亲测有效的解决方案,你可以挨个试试:

  • 重新生成标准格式的ICO文件
    PyInstaller对Windows ICO文件有严格要求:必须包含多种尺寸(比如16x16、32x32、48x48、256x256像素),而且得是真正的ICO格式,不能是把PNG/JPG改后缀凑出来的。
    最简单的办法是用Python的Pillow库自己转换:

    from PIL import Image
    
    # 替换成你用来做图标的原始图片(比如PNG格式)
    original_img = Image.open("snake_icon.png")
    # 保存成符合要求的ICO文件,指定多种尺寸
    original_img.save("mysnake.ico", format='ICO', sizes=[(16,16), (32,32), (48,48), (256,256)])
    

    如果你不想写代码,也可以用GIMP、Photoshop这类工具导出成ICO格式,记得勾选包含多尺寸选项。

  • 检查文件路径与权限
    确保图标文件和你的SnakeGameGUI.py在同一个文件夹里,或者打包时用绝对路径指定图标:

    pyinstaller --onefile --windowed --icon=C:\Users\BobJones\Desktop\mysnake.ico SnakeGameGUI.py
    

    另外,避开路径里的空格、特殊字符或者非英文名称,也可以试试把文件移到桌面这类简单路径再打包,有时候权限问题也会导致这种错误。

  • 验证ICO文件是否有效
    先试试用Windows自带的图片查看器打开mysnake.ico,如果打不开,说明文件已经损坏,必须重新生成。
    也可以用PyInstaller的内置工具直接测试:

    python -c "from PyInstaller.utils.win32.icon import Icon; Icon('mysnake.ico')"
    

    运行后如果还是弹出同样的OSError,那百分百是图标文件的问题。

  • 调整PyInstaller版本
    有时候是PyInstaller和Anaconda环境的兼容性问题,你可以试试降级到一个稳定版本:

    pip uninstall pyinstaller
    pip install pyinstaller==4.5.1
    

    或者直接升级到最新版:

    pip install --upgrade pyinstaller
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 11:54:10