如何使用Python创建可直接执行的跨平台GUI应用程序?

Tei*_*ion 251 python deployment user-interface tkinter release-management

Python可以在多个平台上运行,可以用于桌面和Web应用程序,因此我得出结论,有一些方法可以将它编译成Mac,Windows和Linux的可执行文件.

问题是我不知道从哪里开始或如何用它来编写GUI,任何人都可以对此有所了解并指出我正确的方向吗?

lub*_*sko 269

首先,您将需要一些带有Python绑定的GUI库,然后(如果您需要)一些程序将您的python脚本转换为独立的可执行文件.

具有Python绑定的跨平台GUI库(Windows,Linux,Mac)

当然,有很多,但我在野外看到的最受欢迎的是:

完整列表位于http://wiki.python.org/moin/GuiProgramming

单可执行文件(所有平台)

单个可执行文件(Windows)

  • py2exe - 曾经是最受欢迎的

单个可执行文件(Linux)

  • 冻结 - 以与py2exe相同的方式工作,但目标是Linux平台

单个可执行文件(Mac)

  • py2app - 再次,像py2exe一样工作,但目标是Mac OS

  • 谈论windows的pyinstaller,而不是py2exe. (17认同)
  • ...这就是为什么你现在应该非常考虑使用[PySide](http://www.pyside.org/)**是*LGPL.它也比PyQt4的Python 2 API更具Pythonic. (14认同)
  • 值得注意的是,从4.5开始,QT将属于LGPL. (8认同)
  • ......但是PyQt仍然是GPL. (5认同)
  • 您还可以添加[cx_Freeze](http://sourceforge.net/projects/cx-freeze/),它是跨平台的,维护的,并且支持Python 3.x. (3认同)
  • 为什么这里没有提到 [__Kivy__](https://kivy.org/#home)?这不是这个问题的有效选项吗? (2认同)

Jam*_*mie 55

另一个系统(尚未在接受的答案中提及)是PyInstaller,当py2exe不能时,它可以用于我的PyQt项目.我发现它更容易使用.

http://www.pyinstaller.org/

Pyinstaller基于Gordon McMillan的Python安装程序.哪个不再可用.

  • 它现在支持Python 2.7和Python 3.3,3.4和3.5. (11认同)
  • 现在也是3.6. (3认同)

小智 14

py2exe的另一个工具是bbfreeze,它为windows和linux生成可执行文件.它比py2exe更新,可以很好地处理鸡蛋.我发现如果没有配置适用于各种各样的应用程序,它会神奇地工作.


Tof*_*eth 11

还有PyGTK,它基本上是Gnome Toolkit的Python包装器.我发现比Tkinter更容易包围我,因为之前几乎不了解GUI编程.它工作得很好,并有一些很好的教程.不幸的是,还没有适用于Windows的Python 2.6安装程序,可能暂时还没有.


Mat*_*kel 6

由于现在默认情况下几乎每个非Windows操作系统都安装了python,因此您唯一需要确保的是安装了所有非标准库.

话虽如此,可以构建包含python解释器的可执行文件,以及您使用的任何库.但是,这可能会创建一个大型可执行文件.

MacOS X甚至包括Xcode IDE中的支持,用于创建完整的独立GUI应用程序.这些可以由运行OS X的任何用户运行.


ful*_*ton 5

对于GUI本身:

PyQT几乎是参考.

开发快速用户界面的另一种方法是编写Web应用程序,让它在本地运行并在浏览器中显示应用程序.

另外,如果您选择lubos hasko建议的Tkinter选项,您可能需要尝试使用portablepy来让您的应用程序在没有Python的Windows环境中运行.