我正在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修复,因为它取决于理解窗口系统的细节(可能很容易在将来的某个时候休息)我想知道是否有更清洁的方式。
这个问题还没有得到满意的答案。
答案 0 :(得分:0)
如果将文件保存为main.pyw
,则应该在不打开新cmd /终端的情况下运行脚本。
然后您可以将其作为python main.pyw
答案 1 :(得分:0)
首先,您应该始终将.pyw
用于GUI。
其次,如果您希望没有python的人能够使用您的程序,您可以将其转换为.exe
。这个过程很简单。最难的部分是下载其中一个:
如果您决定沿着这条路走下去,您可以简单地谷歌说明如何使用它们。
此外,如果您在GUI中使用messageboxes
,那么它将无法正常工作。您将不得不创建窗口/顶层。