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
相关产品推荐
相关产品推荐

