【发布时间】:2021-12-30 17:45:51
【问题描述】:
由于各种原因,我需要以“onedir”格式(而不是“onefile”格式)打包 PyInstaller 应用程序。该应用程序运行良好,我可以通过进入“onedir”目录并从终端键入 ./myapp 来启动它。我的问题是我应该如何以允许(可能是新手)Linux 用户轻松启动应用程序的方式打包此文件夹?
在 Windows 上,我可以构建一个不错的安装程序,或者我可以将目录作为 zip 文件分发。在这两种情况下,用户都会获得一个带有品牌图标的 exe,他们可以双击它来启动应用程序。 (在便携式应用程序案例中,他们解压缩目录并在其中看到带有品牌图标的明显 .exe 文件)。在 MacOS 上,“onedir”选项会创建一个包,该包再次带有一个可以双击启动的品牌图标。
我应该在 Linux 上做什么? (我不想依赖用户知道如何导航到文件夹,启动终端,然后运行 ./myapp 命令。)
一些注意事项:
-
我考虑过压缩文件夹并分发它。但是,在 Linux Mint 上,“myapp”可执行文件看起来像一个文本文件,因此不容易被识别为可执行文件。此外,如果用户双击“myapp”图标,他们会收到“未知文件类型”警告。 “选择程序”对话框显示了各种应用程序,但没有“运行”选项。有趣的是,如果我将可执行文件命名为“myapp.sh”,双击它会产生一个不同的对话框,在那里他们可以选择运行它。
-
最好的方法可能是从“onedir”目录构建一个 deb 包。我试过这个,但我不知道如何构建包,以便可执行文件出现在一个明显的地方,并且可以双击启动。许多教程都讨论了为二进制文件构建包,但没有提到用户在安装可执行文件后应该如何启动它。此外,他们经常讨论单个文件的可执行文件,而不是文件夹中的可执行文件(例如 PyInstaller 的“onedir”选项)。
任何意见或建议都会非常有帮助。谢谢!
【问题讨论】:
标签: python linux pyinstaller software-packaging