使用Python创建一个可直接运行的跨平台GUI应用
Python可以在多个平台上运行,既可以用来开发桌面应用程序,也可以用来开发网页应用程序。因此,我认为应该有办法把它编译成可以在Mac、Windows和Linux上运行的可执行文件。
不过,我现在不知道从哪里开始,也不知道怎么用它写图形用户界面(GUI),有没有人能给我一些建议,帮我指明方向呢?
14 个回答
一个可以替代py2exe的工具是bbfreeze,它可以为Windows和Linux生成可执行文件。这个工具比py2exe更新,处理“egg”文件的能力也不错。我发现它在很多不同的应用上,几乎不需要配置就能神奇地运行得更好。
还有一个系统(在接受的回答中还没有提到)是 PyInstaller,它在我一个 PyQt 项目中很好用,而 py2exe 就不行。我觉得使用起来更简单。
PyInstaller 是基于 Gordon McMillan 的 Python Installer 的,但那个已经不再提供了。
首先,你需要一个带有Python接口的图形用户界面(GUI)库,然后(如果你想的话)可以找个程序把你的Python脚本转换成独立的可执行文件。
跨平台的GUI库 (支持Windows、Linux、Mac)
当然,有很多这样的库,但我见过的最流行的有:
- Tkinter - 基于Tk GUI工具包。
这是Python的事实标准GUI库,商业项目可以免费使用。
- WxPython - 基于WxWidgets。
很受欢迎,商业项目也可以免费使用。
- Qt 使用PyQt接口或Qt for Python。
前者在商业项目中不可免费使用,后者虽然不够成熟,但可以免费使用。
Qt本身据说也支持
Android
和iOS
,但用它的接口实现这一点可能会比较复杂。 - Kivy
用Python编写,专为Python设计(更新于2023年)。
据说也支持
Android
和iOS
。
注意,使用
WxWidgets
(因此也包括WxPython
用户)的人,通常还需要使用WxQt
,因为WxWidgets
自己的GUI在写这篇文章时还没有达到Qt
的水平。
完整列表可以在http://wiki.python.org/moin/GuiProgramming找到。
独立的可执行文件
适用于所有平台:
- PyInstaller - 最活跃的一个(也可以和
PyQt
一起使用) - fbs - 如果你选择了Qt(商业项目,有免费计划)
适用于Windows:
- py2exe - 曾经是最受欢迎的
适用于Linux:
- Freeze - 工作原理和py2exe一样,但针对Linux平台
适用于MacOS:
- py2app - 同样,工作方式和py2exe一样,但针对Mac OS