【问题标题】:Python GUI App Distribution: written in wxPython, TKinter or QTPython GUI App Distribution:用 wxPython、TKinter 或 QT 编写
【发布时间】:2012-09-21 21:20:26
【问题描述】:

我的问题是关于跨平台(Mac/Linux/Windows)分发 GUI 应用程序的难易程度,我想知道哪一种使用户的工作变得最简单。

我目前的理解是,Tkinter 应用程序对用户来说是最容易(安装)的,因为只要用户在她的盒子中安装了 Python,我的应用程序就应该可以在该盒子上运行。

对于使用 wxPython 或 pyQT 编写的 GUI 应用程序,用户需要先在她的盒子中安装 wxWidget 或 QT,这是一个额外的步骤,然后安装我的 GUI 应用程序。 (但我的 Ubuntu 盒子似乎默认安装了 wxWidget 库和 QT 库,是规范还是只是 Ubuntu 发行版对用户更友好?我猜 Windows 和 Mac 可能不默认提供它们,即用户需要下载并安装它们作为额外的步骤)

【问题讨论】:

  • 不能保证 tkinter 会因为 Python 可用而可用。它是一个扩展模块,因此可以拆分成一个单独的包。 Mandriva Linux 发行版就是这样做的,可能还有其他发行版。

标签: python user-interface wxpython pyqt tkinter


【解决方案1】:

如果您运行的是 Ubuntu,PyQt 将默认安装。大多数 linux 发行版将默认安装 PyGtk 或 PyQt 之一。 WxPython 很可能作为系统中某些其他软件包的依赖项安装在您的 Ubuntu 机器中。

如果您的目标市场是 Linux,您可以只创建一个 deb 或 rpm 包,它会处理您的应用程序的依赖关系。

对于 Windows 和 Mac(甚至是 Linux,如果您愿意的话),您可以将 python 解释器与您的应用程序及其库捆绑成原生可执行格式,例如 使用 cx_freezepy2exepy2app 等库作为 .exe、.dmg 或 .elf。完成此操作后,您的用户将不必安装 python 或您的任何库。

【讨论】:

  • PyInstaller 是多平台的,支持许多第三方库,例如开箱即用的 PyQt、wxPython
【解决方案2】:

Tkinter 是 Python 中唯一包含的一个。 wxPython 和 pyQT 需要 wxWindows 或 QT 库 wxPython 或 pyQT 库才能安装在系统上。

但是,Tk 看起来不是很好。如果你已经让用户安装 Python,你也可以让他们安装库。 (或者可能包括安装程序或其他东西。)

【讨论】:

  • 我认为关于 Tk 外观的评论在这里不合适。问题不在于选择哪个工具包,而在于部署选项是什么。另外,Tk 的外观是非常主观的,所以它有损于 IMO 的答案。
  • 此外,通过 Tkinter 的新 ttk 子库(在 Python 2.7+ 或 pypi.python.org/pypi/pyttk 中可用),您可以使 Tkinter 应用程序看起来不错。
【解决方案3】:

如果应用程序要跨平台,我建议WxWidgets (wxpython)。我用了好几次了,从来没出过问题。

不过,您应该为 Windows、Mac 和 Linux 创建不同的安装程序。在 Linux 中,使用 .deb.rpm 来处理依赖关系。

在 Windows 中,我一直使用 py2exe 创建一个 exe 文件。 Py2exe 通过附加 python 解释器和所需的库来工作,在本例中为 wxWidgets

查看此链接了解更多信息:http://www.py2exe.org/

【讨论】:

  • 我认为关于选择 wxWidgets 的评论在这里不合适。问题不在于哪个工具包最好,而在于部署选项。当问题不是关于选择“X”时说“我选择 X”可能会仅仅因为有人喜欢或不喜欢 wxPython 而引起赞成票和反对票。我认为如果您坚持部署主题,这个问题会更好。但是,除非您明确表示 wxPython 更易于部署,在这种情况下您应该解释原因。
猜你喜欢
  • 2012-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-13
  • 2013-03-30
相关资源
最近更新 更多