使用Python创建一个可直接运行的跨平台GUI应用

311 投票
14 回答
224710 浏览
提问于 2025-04-10 23:45

Python可以在多个平台上运行,既可以用来开发桌面应用程序,也可以用来开发网页应用程序。因此,我认为应该有办法把它编译成可以在Mac、Windows和Linux上运行的可执行文件。

不过,我现在不知道从哪里开始,也不知道怎么用它写图形用户界面(GUI),有没有人能给我一些建议,帮我指明方向呢?

14 个回答

16

一个可以替代py2exe的工具是bbfreeze,它可以为Windows和Linux生成可执行文件。这个工具比py2exe更新,处理“egg”文件的能力也不错。我发现它在很多不同的应用上,几乎不需要配置就能神奇地运行得更好。

61

还有一个系统(在接受的回答中还没有提到)是 PyInstaller,它在我一个 PyQt 项目中很好用,而 py2exe 就不行。我觉得使用起来更简单。

http://www.pyinstaller.org/

PyInstaller 是基于 Gordon McMillan 的 Python Installer 的,但那个已经不再提供了。

315

首先,你需要一个带有Python接口的图形用户界面(GUI)库,然后(如果你想的话)可以找个程序把你的Python脚本转换成独立的可执行文件。

跨平台的GUI库 (支持Windows、Linux、Mac)

当然,有很多这样的库,但我见过的最流行的有:

  • Tkinter - 基于Tk GUI工具包

    这是Python的事实标准GUI库,商业项目可以免费使用。

  • WxPython - 基于WxWidgets

    很受欢迎,商业项目也可以免费使用。

  • Qt 使用PyQt接口Qt for Python

    前者在商业项目中不可免费使用,后者虽然不够成熟,但可以免费使用。

    Qt本身据说也支持AndroidiOS,但用它的接口实现这一点可能会比较复杂。

  • Kivy 用Python编写,专为Python设计(更新于2023年)。

    据说也支持AndroidiOS

注意,使用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

撰写回答