2012-01-31 29 views
1

我正在讨论通过用于OSX和Windows的.app和.exe格式部署Python制作的,基于GUI的桌面应用程序。就我进入Python而言,我只将它看作是在终端/命令提示符上运行的应用程序。我知道可以使用互联网上的各种产品(wxPython?)为其创建用户界面。我只想看看它是如何消失的,作为开发人员使用尽可能少的代码差异来创建mac和windows应用程序的一种方式。Python如何成为一种多平台编程语言?

+0

不是一个真正全面的答案,但我认为如果您使用跨平台的GUI框架(例如Qt),那么您应该只需关注特定于操作系统的Python代码。我的意思是像“subprocess”或“os”这样的软件包,根据平台的不同,其行为有时会有所不同。除此之外,我会说它应该是非常轻松的工具,如Py2App或Py2Exe。我还没有测试过或做过,所以这只是一个松散的想法,我可能不会100%正确。 – kgr 2012-01-31 21:59:33

回答

0

我认为你要找的是PyQTTkinter。两者都是用于Python的GUI库。两者都是跨平台的。此外,为了打包分发的.exe和.app,请查看py2exepy2app

0

对于Windows,最简单的方法是py2exe。 MacOS还有一个类似的项目。它被称为py2app。大多数GUI框架都是跨平台的。只需检查他们的文档,甚至主页应该有它。

充分利用os模块。它有很多功能可以处理跨平台的情况。一个常见的例子是文件路径。当你建立一个路径时,它应该是反斜杠还是正斜杠? os.path.join为你处理,并基于它运行在哪个操作系统上。从OS发货到OS时,您不必修改代码。它自然也应该在Linux上运行。

顺便说一下,MacOS通常会预装Python。只要它是最近的版本,这可以使HelloWorld脚本的差异为1kb和30mb,因此避免将Python打包。不幸的是,Windows不太好装备。考虑下载exe文件时选择“我已经安装了Python”。

1

我发现Python是一种非常好的GUI编程语言。正如你所说的,你可以使用wxWidgets(wxPython)的绑定,但是对于你可以想到的所有其他跨平台GUI工具包(Tk,Qt,GTK,FLTK等)也有绑定。这些GUI工具包应该允许你创建一个在大多数操作系统上运行未修改的程序。

就Python操作系统兼容性而言,除了一个或两个模块(如mmap)之外,它在所有操作系统上的行为几乎相同。

使用py2exe,py2app或类似工具,您可以在可执行文件中嵌入Python解释器(以及程序的字节码及其依赖关系),从而轻松分发应用程序。最终用户可以随时打开程序。如果你想要一种编译语言的“安全性”,Python将不会是你使用的最好的语言(但我更喜欢可读性而不是安全:)。

另一件需要考虑跨平台性的事情是您计划使用的操作系统特定功能。大多数GUI工具包不支持诸如Microsoft的DWM之类的东西(尽管您可以通过​​使用OS功能)。