如何让PyInstaller编译的Python应用显示在Windows开始菜单?
嘿,这个需求我刚好折腾过,给你两种实用方案,手动添加和打包时自动配置,按需选就行:
方法一:手动添加到Windows开始菜单
这种方法适合临时快速搞定,步骤超简单:
- 找到PyInstaller打包好的
.exe文件,右键它选择「创建快捷方式」 - 按下
Win+R,输入shell:start menu回车,这会直接打开开始菜单的快捷方式存放根目录;要是想把程序归类到自定义文件夹里,比如建个「我的Python工具」文件夹,直接在这里新建就行 - 把刚才生成的快捷方式拖到这个目录(或新建的子文件夹)里,刷新下开始菜单,就能看到你的程序了
- 可选优化:右键快捷方式→「属性」,可以修改显示名称、替换自定义图标,让它看起来更专业
方法二:打包时用PyInstaller自动生成开始菜单快捷方式
如果想让用户安装(打包)后直接在开始菜单看到程序,就用这种方法,需要修改PyInstaller的spec配置文件:
- 生成spec文件:如果之前是直接用
pyinstaller your_script.py打包的,现在重新运行命令生成spec(比如你的脚本叫my_app.py,程序名想叫「我的Python应用」):
pyinstaller --name "我的Python应用" --onedir my_app.py
(如果是单文件打包就用--onefile,按需选择)
- 打开生成的
我的Python应用.spec文件,找到a = Analysis(...)这部分,在后面添加快捷方式的配置代码:
# 定义快捷方式配置表 shortcut_table = [ ("StartMenuShortcut", # 快捷方式标识 "StartMenuFolder\\我的Python工具", # 存放位置:开始菜单下的「我的Python工具」子文件夹,直接放根目录就写"StartMenuFolder" "我的Python应用", # 快捷方式显示名称 "TARGETDIR", # 目标目录变量(PyInstaller自动处理) "[TARGETDIR]我的Python应用.exe", # 目标exe路径 None, # 启动参数(没有就写None) "这是我用PyInstaller打包的Python应用", # 程序描述 "icon.ico", # 自定义图标路径(和spec同目录的话直接写文件名,否则写绝对路径) 0, # 窗口显示方式:0=正常,1=最大化,2=最小化 None, # 快捷键(没有就写None) "TARGETDIR" # 工作目录 ) ] # 如果用了自定义图标,要把图标文件加入打包资源(没有的话可以删掉这行) a.datas += [("icon.ico", "./icon.ico", "DATA")] # 修改EXE配置,把shortcut_table加进去 exe = EXE(pyz, a.scripts, a.binaries, a.zipfiles, a.datas, [], name='我的Python应用', debug=False, bootloader_ignore_signals=False, strip=False, upx=True, upx_exclude=[], runtime_tmpdir=None, console=False, # GUI程序设为False,控制台程序设为True disable_windowed_traceback=False, target_arch=None, codesign_identity=None, entitlements_file=None, shortcut_table=shortcut_table # 关键:添加这行启用快捷方式生成 )
- 用修改后的spec文件重新打包:
pyinstaller 我的Python应用.spec
打包完成后,程序会自动在开始菜单的指定位置生成快捷方式,不用手动操作啦!
小提示
- 如果是
--onefile单文件打包,PyInstaller会自动处理临时目录的路径问题,不用额外调整 - 自定义图标要确保格式是
.ico,别用png/jpg,不然显示不正常 - 手动添加时一定要用快捷方式,别直接移动exe文件,不然程序可能找不到依赖的动态库
内容的提问来源于stack exchange,提问作者ngg1995
相关产品推荐
相关产品推荐

