python或pythonw在创建跨平台的独立GUI应用程序

时间:2014-05-14 15:40:31

标签: python user-interface cross-platform

我正在python中开发一个简单的独立图形应用程序。我的开发已在linux上完成,但我想分发应用程序跨平台。

我有一个启动器脚本,它检查一堆环境变量,然后设置各种配置选项,然后调用应用程序,其数量为python main.py(具体为os.system('python main.py %s'% (arg1, arg2...))

在OS X(没有X11)上,启动程序脚本崩溃时出现Could not run application, need access to screen之类的错误。之后非常快速的谷歌搜索,该脚本在本地工作,将python main.py替换为pythonw main.py

我的问题是,编写启动器脚本的最佳方法是什么,以便它可以跨平台做正确的事情而不是崩溃?请注意,这个问题不是询问如何确定我所使用的平台。解决方案“检查我是否在OS X上,如果是这样调用pythonw”是我现在所做的,但它看起来有点像hacky修复,因为它取决于理解窗口系统的细节(可能很容易在将来的某个时候休息)我想知道是否有更清洁的方式。

这个问题还没有得到满意的答案。

2 个答案:

答案 0 :(得分:0)

如果将文件保存为main.pyw,则应该在不打开新cmd /终端的情况下运行脚本。

然后您可以将其作为python main.pyw

运行

答案 1 :(得分:0)

首先,您应该始终将.pyw用于GUI。

其次,如果您希望没有python的人能够使用您的程序,您可以将其转换为.exe。这个过程很简单。最难的部分是下载其中一个:

  • for python 2.x:p2exe
  • for python 3.x:cx_Freeze

如果您决定沿着这条路走下去,您可以简单地谷歌说明如何使用它们。

此外,如果您在GUI中使用messageboxes,那么它将无法正常工作。您将不得不创建窗口/顶层。