我需要开发一个中小型桌面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有一个名为的嵌入式GUI工具包 使用TKinter 它基于TCL编程语言的Tk库。它是非常基本的,并没有您在Windows窗体或GTK中所期望的所有功能,但是如果您必须拥有与平台无关的工具包,我认为没有其他选择,请记住您也不希望增长那么多的二进制文件。
Tkinter并不难用,因为它没有数百万个小部件/控件和选项,并且是大多数python发行版中包含的默认工具包,至少在Windows,OSX和Linux上是如此。
GTK 和 QT 它们更漂亮,更强大,但它们对你来说有一个很大的缺点:它们很重,并且在第三个库上很糟糕,尤其是GTK,它有很多依赖性,这使得它很难分发它嵌入你的软件中。
至于二进制创建我知道有py2exe将python代码转换为win32可执行代码(.exe's),但我不确定OSX是否有类似的东西。您是否担心,因为人们可以看到源代码,或者只是因为您可以将所有内容捆绑在一个包中?如果您只想捆绑创建独立可执行文件所需的所有内容,则可以轻松创建安装程序:
在python中创建distributable
这是关于如何在软件完成后分发软件的指南。
http://Gajim.org 对于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时,您将支付初始解压缩惩罚。