使用pyinstaller打包Python程序为exe时如何添加自定义启动图标?
替换Tkinter+PyInstaller打包程序自定义图标的操作步骤
前置准备
- 提前准备好ICO格式的自定义图标文件,建议内置16x16/32x32/48x48/256x256多尺寸规格,避免不同场景下显示模糊或不生效。
步骤1:修改Tkinter代码,配置运行时图标
这一步解决窗口标题栏、任务栏显示默认Tkinter图标的问题:
- 在代码最开头添加Windows应用ID配置,避免任务栏图标识别异常:
import ctypes # 自定义应用ID,任意字符串即可 ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID("my.custom.app.v1")
- 在Tkinter主窗口初始化后,设置窗口图标:
import tkinter as tk root = tk.Tk() # 填写你的ico文件相对路径或绝对路径 root.iconbitmap("logo.ico") # 后续你的窗口业务代码 root.mainloop()
如果你要打包为单文件exe,怕路径读取出错,可以把ICO文件转为Base64字符串直接嵌入代码,无需额外携带图标文件。
步骤2:PyInstaller打包时指定exe文件图标
这一步修改exe文件本身的显示图标:
执行打包命令时添加-i参数指定图标路径即可,示例命令:pyinstaller -F -w -i logo.ico 你的脚本名称.py
参数说明:
-F:打包为单个独立exe文件-w:窗口程序,运行时不弹出黑色控制台窗口-i:指定exe文件的图标路径
如果你使用spec文件配置打包规则,直接修改spec文件中EXE配置项的icon参数为你的图标路径即可。
常见异常处理
如果修改后仍然显示旧图标,大概率是Windows系统图标缓存导致,可以将exe移动到新文件夹,或重启Windows资源管理器清理缓存后再测试。
内容的提问来源于stack exchange,提问作者AD0T.dev
相关产品推荐
相关产品推荐

