繁体   English   中英

Python GUI应用程序重新分发

[英]Python GUI Application redistribution

我需要开发一个中小型桌面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上是这样。

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

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

在python中创建distributable

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

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 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM