我正在制作一个setup.py
使用 setuptools 与文件一起安装的 Python 包。
该软件包包括一个 GUI,当它安装在 Windows 机器上时,我希望安装在开始菜单的“程序”中创建一个文件夹,并在那里创建一个指向pyw
将启动 GUI 的脚本的快捷方式。(这个pyw
想法适用于所有平台,对吧?)
在 Mac 和 Linux 上,我希望它可以将此快捷方式放在与开始菜单平行的任何 Mac 和 Linux 中。
我该怎么做呢?
我正在制作一个setup.py
使用 setuptools 与文件一起安装的 Python 包。
该软件包包括一个 GUI,当它安装在 Windows 机器上时,我希望安装在开始菜单的“程序”中创建一个文件夹,并在那里创建一个指向pyw
将启动 GUI 的脚本的快捷方式。(这个pyw
想法适用于所有平台,对吧?)
在 Mac 和 Linux 上,我希望它可以将此快捷方式放在与开始菜单平行的任何 Mac 和 Linux 中。
我该怎么做呢?
Linux 系统通常不为可执行应用程序使用 .pyw 扩展名(尽管您可以根据需要使用)。传统上,Linux 上的 python(或 perl、bash 等)脚本没有文件扩展名,具有执行权限,并以 'magic' 行 "#!/usr/bin/python' 开头。'#!' 让操作系统知道这是一个需要解释器的脚本,并且以下路径表示要使用的解释器。
至于添加桌面快捷方式,freedesktop.org提供了现代 Linux 桌面菜单如何工作的规范。具体来说,您最感兴趣的是桌面条目,尽管菜单生成中的那个可能也很有趣。
InnoSetup允许您在 Windows 开始菜单中创建快捷方式。您甚至可以添加卸载图标。
innosetup 文件的相关部分是:
UninstallDisplayIcon={app}\myico.ico
[Icons]
Name: "{group}\MyPrograms"; Filename: "{app}\miexe.exe" ;WorkingDir: "{app}"; Comment: "miexe program"
对于 Mac 和 Linux,我忍不住
由于 setuptools 似乎没有为此提供简单的解决方案,因此我决定放弃这个想法,直到我使用 py2exe/InnoSetup 发布我的应用程序。
看看pywin32的安装后脚本是如何做到的(搜索快捷方式)。不确定 Mac/Linux。
对于 windows,conda 使用menuinst
https://github.com/ContinuumIO/menuinst