Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何以在桌面上创建图标的方式制作安装程序?_Python_Installation_Nsis_Pynsist_Fbs - Fatal编程技术网

Python 如何以在桌面上创建图标的方式制作安装程序?

Python 如何以在桌面上创建图标的方式制作安装程序?,python,installation,nsis,pynsist,fbs,Python,Installation,Nsis,Pynsist,Fbs,我已经准备好了,已经编译好的python windows应用程序,但是在制作安装程序时有一个问题,当您选中相应的标记时,它会为它创建桌面图标 我使用干净的NSIS脚本、fbs和pynsist制作了一个安装程序。实际上,创建一个可以将应用程序下载到程序文件的安装程序是没有问题的,但是我还没有找到创建一个图标的方法,这个图标将显示在桌面上 非常感谢您的帮助。Pynsist由于某些原因似乎无法注入额外代码,但您可以覆盖整个安装脚本 复制pyapp.nsi文件或 在文件中有两个位置创建快捷方式$SMPR

我已经准备好了,已经编译好的python windows应用程序,但是在制作安装程序时有一个问题,当您选中相应的标记时,它会为它创建桌面图标

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


非常感谢您的帮助。

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

复制pyapp.nsi文件或

在文件中有两个位置创建快捷方式$SMPROGRAMS\。。。。。 在其下方添加另一行,其中包含:

CreateShortcut "$DESKTOP\[[scname]].lnk" "[[sc['target'] ]]" '[[ sc['parameters'] ]]' "$INSTDIR\[[ sc['icon'] ]]"
最后,在installer.cfg文件中,添加/设置

[Build]
nsi_template=c:\my_custom_pyapp.nsi

由于某种原因,Pynsist似乎没有办法注入额外的代码,但是您可以覆盖整个安装脚本

复制pyapp.nsi文件或

在文件中有两个位置创建快捷方式$SMPROGRAMS\。。。。。 在其下方添加另一行,其中包含:

CreateShortcut "$DESKTOP\[[scname]].lnk" "[[sc['target'] ]]" '[[ sc['parameters'] ]]' "$INSTDIR\[[ sc['icon'] ]]"
最后,在installer.cfg文件中,添加/设置

[Build]
nsi_template=c:\my_custom_pyapp.nsi

你的installer.cfg看起来像什么?你的installer.cfg看起来像什么?nsi模板文件实际上是一种注入额外代码的方式,尽管细节没有真正的文档记录。它使用Jinja模板,允许从父模板继承并扩展在父模板中定义的块。例如,您可以扩展安装快捷方式块。[[super]]插入父模板中块的内容。@请随意编辑我的答案或添加您自己的答案。不幸的是,运行my installer.cfg会导致jinja的TemplateNotFoundError。你要我做的我都做了。我的安装程序应该正常工作还是应该编辑?@TimKoval嗯,你需要将c:\my_custom\u pyapp.nsi更改为保存.nsi的位置。@ThomasK谢谢你的提示,花了我一段时间才让它正常工作,这是为后代准备的nsi模板文件实际上是一种注入额外代码的方法,虽然细节并没有真正的记录。它使用Jinja模板,允许从父模板继承并扩展在父模板中定义的块。例如,您可以扩展安装快捷方式块。[[super]]插入父模板中块的内容。@请随意编辑我的答案或添加您自己的答案。不幸的是,运行my installer.cfg会导致jinja的TemplateNotFoundError。你要我做的我都做了。我的安装程序是否可以正常工作,或者我是否应该编辑一些内容?@TimKoval嗯,你需要将c:\my_custom\u pyapp.nsi更改为保存.nsi的位置。@ThomasK谢谢你的提示,我花了一段时间才让它工作起来,这是给后代的