2012-10-01 50 views
7

我的问题是关于跨平台(Mac/Linux/Windows)分发GUI应用程序的简易性,我想知道使用户的工作最简单。Python GUI应用程序分发:用wxPython,TKinter或QT编写

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

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

+2

有没有保证的Tkinter将可仅仅因为Python是。它是一个扩展模块,因此可以拆分成单独的包。 Mandriva Linux发行版可以做到这一点,并且可能还有其他的。 – ekhumoro

回答

8

如果您运行的是Kubuntu,则将默认安装PyQt。大多数Linux发行版将默认安装PyGtk或PyQt之一。 WxPython最有可能被安装在你的Ubuntu系统中,作为系统中其他软件包的依赖。

如果您的目标市场是Linux,那么您可以创建一个deb或rpm包,并为您的应用程序提供依赖关系。

对于Windows和Mac(如果你愿意,甚至Linux上),你可以这样 .exe或.elf使用库,例如​​cx_freeze与应用程序捆绑Python解释器和它的图书馆变成一个本地可执行格式,py2exepy2app。完成此操作后,用户将不必安装python或任何库。

+6

[PyInstaller](http://www.pyinstaller.org/)是多平台,支持许多第三方库,例如PyQt,wxPython开箱即用 – jfs

+0

PyInstaller的工作原理也很棒。 – prabu

4

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

但是,Tk看起来不太好。如果您已经让用户安装Python,那么您也可以让他们安装这些库。 (或者可能包含安装程序或其他东西)。

+0

我认为关于Tk外观的评论在这里不合适。问题不在于选择哪个工具包,而是部署选项是什么。另外,Tk的外观非常主观,所以它减损了IMO的答案。 –

+3

此外,Tkinter的新ttk子库(以Python 2.7+或http://pypi.python提供。org/pypi/pyttk),你可以让Tkinter应用看起来很不错。 –

2

如果应用程序将跨平台,我会建议WxWidgetswxpython)。我已经多次使用过它,这从来都不是问题。

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

在Windows中,我一直使用py2exe来创建一个exe文件。 Py2exe通过附加Python解释器和所需的库,在这种情况下,wxWidgets

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

+1

我认为关于选择wxWidgets的评论在这里不合适。问题不在于哪个工具包最好,而是关于部署选项。当问题不是选择“X”时,说“我选择X”可能会因为有人喜欢或不喜欢wxPython而招致票数增加和票数减少。如果你坚持部署的话题,我认为这个问题会更好。但是,除非你明确说wxPython更易于部署,在这种情况下,你应该解释原因。 –

相关问题