11

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

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

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

补充: 我一直在研究 WxPython,但是我发现了很多关于使用 cx_freeze 打包它并获得 30mb+ 二进制文件的恐怖故事,并且没有关于如何实际进行打包以及它的可信度的真正建议。

4

7 回答 7

6

这可能会有所帮助:

如何从 Python 程序制作 EXE 文件?

于 2008-09-30T17:00:40.337 回答
6

http://wiki.wxpython.org/CreatingStandaloneExecutables

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

于 2008-09-30T17:03:57.567 回答
2

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

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

GTKQT更漂亮、更强大,但它们有一个很大的缺点:它们很重并且依赖于第三个库,尤其是 GTK,它有很多依赖项,因此很难将其嵌入到您的软件中进行分发。

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

在python中创建可分发的

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

于 2008-09-30T17:47:28.023 回答
1

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

于 2008-09-30T17:10:12.793 回答
1

我没有为 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 中包含一个清单,否则它看起来很难看。有关详细信息,请参阅此电子邮件

于 2008-09-30T21:28:06.013 回答
0

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

于 2008-09-30T17:02:15.060 回答
0

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

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

于 2008-09-30T20:29:08.213 回答