【问题标题】:How to make an installer the way it creates an icon on desktop?如何以在桌面上创建图标的方式制作安装程序?
【发布时间】:2026-01-26 10:25:01
【问题描述】:

我已经准备好,已经为 windows 编译了 python 应用程序,但是在制作安装程序时出现问题,当您检查相应的标记时会为其创建桌面图标。

我使用干净的NSIS 脚本、fbspynsist 制作了一个安装程序。实际上,创建将您的应用程序下载到Program Files 的安装程序没有问题,但是我还没有找到创建将显示在桌面上的图标的方法。

感谢任何帮助。

【问题讨论】:

标签: python installation nsis pynsist fbs


【解决方案1】:

出于某种原因,Pynsist 似乎无法注入额外代码,但您可以覆盖整个安装脚本。

复制您的 pyapp.nsi 文件(或 grab it from Github)。

文件中有两个地方是CreateShortCut "$SMPROGRAMS\....。 在其下添加另一行:

CreateShortcut "$DESKTOP\[[scname]].lnk" "[[sc['target'] ]]" '[[ sc['parameters'] ]]' "$INSTDIR\[[ sc['icon'] ]]"

最后,在您的 installer.cfg 文件中,添加/设置

[Build]
nsi_template=c:\my_custom_pyapp.nsi

【讨论】:

  • nsi 模板文件实际上是一种注入额外代码的方法,尽管详细信息并未真正记录在案。它使用 Jinja 模板,它允许从父模板继承并扩展那里定义的块。例如。您可以扩展 install_shortcuts 块。 [[ super() ]] 从父模板插入块的内容。
  • @ThomasK 随意编辑我的答案或添加您自己的答案。
  • 不幸的是,运行我的 installer.cfg 给了我 jinja 的 TemplateNotFoundError。我已经完成了你要求我做的所有事情。我的安装程序应该工作还是我应该编辑一些东西?
  • @TimKoval 好吧,您需要将“c:\my_custom_pyapp.nsi”更改为保存 .nsi 的位置。
  • @ThomasK 感谢您的提示,花了我一段时间如何让它工作,这里是为后代gist.github.com/janmechtel/16d0536e81fd5da93acd731341abc5a5
最近更新 更多