我需要开发一个中小型桌面GUI应用程序,由于时间限制,最好使用Python作为首选语言。

我有哪些GUI库选择允许我独立地重新分发我的应用程序,假设用户没有可用的Python安装,显然没有我正在使用的GUI库?

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

增加: 我一直在看WxPython,但是我发现了很多关于用cx_freeze包装它并获得30mb +二进制文件的恐怖故事,并没有真正的建议如何实际做包装以及如何值得信赖它是。

有帮助吗?

解决方案

http://wiki.wxpython.org/CreatingStandaloneExecutables

除非你设法包含wx的调试版本,否则它不应该那么大。 我似乎记得python.dll的4Mb和wx的similair。

其他提示

Python有一个名为 TKinter 的嵌入式GUI工具包,该工具包基于TCL编程的Tk库语言。它是非常基本的,并没有您在Windows窗体或GTK中所期望的所有功能,但是如果您必须拥有独立于平台的工具包,我认为没有其他选择,请记住您也不希望增长那么多二进制文件。

Tkinter并不难用,因为它没有数百万个小部件/控件和选项,并且是大多数python发行版中包含的默认工具包,至少在Windows,OSX和Linux上是这样。

GTK QT 更漂亮,更强大,但它们对你来说有一个很大的缺点:它们很重,并且对第三个库很重要,特别是GTK,它有很多依赖性,这使它有点难以分发它嵌入你的软件。

至于二进制创建,我知道有py2exe将python代码转换为win32可执行代码(.exe's),但我不确定是否有类似OSX的东西。您是否担心,因为人们可以看到源代码,或者只是因为您可以将所有内容捆绑在一个包中?如果您只想捆绑创建独立可执行文件所不需要的所有内容,则可以轻松创建安装程序:

在python中创建可分发的内容

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

http://Gajim.org for Windows使用python和PyGtk。你可以检查,他们是如何做到的。另外,还有用于GUI的PyQt(以及前面提到的wxpython)。

我没有为Windows以外的任何平台构建独立应用程序的经验。

那说:

Tkinter:可以正常使用py2exe。 Python Megawidgets(Tkinter的“扩展库”)工作正常,但它使用动态导入做了很时髦的事情,所以你需要将所有组件组合成一个大文件“pmw.py”。并将其添加到您的项目中(嗯,您还将有pmwblt.py和pmwcolor.py)。有关如何在某处执行此操作的说明(在py2exe wiki或PMW文档中)。 Tix(可以与Tkinter一起使用的Tk的扩展)不适用于py2exe,或者至少这是我四年前的经验。

wxPython 也适用于py2exe。我刚刚查看了我的应用程序;整个发行量达到11MB左右。其中大部分是wx DLL和.pyd文件,但我看不出你是如何避免这种情况的。如果您的目标是Windows XP,则需要在setup.py中包含清单,否则它看起来很难看。有关详细信息,请参见此电子邮件

我自己使用过py2Exe - 它非常简单(至少对于小型应用程序而言)。

我熟悉的组合:wxPython,py2exe,upx

解决您对分发大小的最后担忧的关键是使用 upx 来压缩DLL 。看起来它们支持MacOS可执行文件。首次加载DLL时,您将支付初始减压惩罚。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top