Python GUI应用程序的重新分发

11 投票
7 回答
5521 浏览
提问于 2025-04-11 09:26

我需要开发一个小到中型的桌面图形用户界面(GUI)应用程序,最好使用Python,因为时间比较紧迫。

我有哪些GUI库可以选择,这些库允许我将应用程序独立分发,假设用户没有安装Python,也没有我使用的GUI库呢?

另外,我该如何将所有内容打包成每个目标操作系统的合理大小的二进制文件?(我主要的目标是Windows和Mac OS X)

补充: 我在考虑使用WxPython,但我发现很多人分享了使用cx_freeze打包时的糟糕经历,结果生成了30MB以上的二进制文件,而且没有真正的建议告诉我如何实际进行打包,以及它的可靠性如何。

7 个回答

2

Python有一个内置的图形用户界面工具包,叫做TKinter,它是基于TCL编程语言的Tk库。这个工具包非常基础,功能没有Windows Forms或GTK那么丰富,但如果你需要一个不依赖平台的工具包,考虑到你也不想让程序变得太大,TKinter是个不错的选择。

使用Tkinter其实并不难,因为它没有成千上万的控件和选项,而且它是大多数Python版本默认包含的工具包,至少在Windows、OSX和Linux上都是这样。

GTKQT看起来更漂亮,功能也更强大,但它们有一个大缺点:它们比较重,并且依赖于第三方库,尤其是GTK,它有很多依赖项,这让它在嵌入到你的软件中时有点麻烦。

关于创建可执行文件,我知道有py2exe可以把Python代码转换成Windows的可执行文件(.exe),但我不确定在OSX上是否有类似的工具。你是担心别人能看到源代码,还是只是想把所有东西打包成一个文件?如果你只是想打包所有内容,其实不需要创建独立的可执行文件,你可以很容易地创建一个安装程序:

在Python中创建可分发文件

这是一个关于如何在软件完成后进行分发的指南。

6
6

http://wiki.wxpython.org/CreatingStandaloneExecutables

如果你没有把调试版本的wx包含进去,文件大小不应该那么大。我记得python.dll大约是4MB,wx也是差不多这个大小。

撰写回答