创建跨平台独立GUI应用时选择python还是pythonw
我正在用Python开发一个简单的独立图形应用程序。我的开发是在Linux上进行的,但我希望这个应用程序可以在不同的平台上使用。
我有一个启动脚本,它会检查一些环境变量,然后设置各种配置选项,最后用类似于python main.py
的方式来运行应用程序(具体来说是os.system('python main.py %s'% (arg1, arg2...))
)。
在OS X系统上(没有X11),启动脚本崩溃了,出现了类似无法运行应用程序,需要访问屏幕
的错误。经过快速的谷歌搜索后,我发现通过将python main.py
替换为pythonw main.py
,脚本在本地可以正常工作。
我的问题是,如何编写启动脚本,使其在不同平台上都能正常工作而不崩溃?需要注意的是,这个问题并不是询问如何判断我在哪个平台上。现在我采取的解决方案是“检查我是否在OS X上,如果是的话就调用pythonw”,但我觉得这有点像临时解决办法,因为它依赖于对窗口系统细节的理解(这将来可能会出问题),我想知道有没有更好的方法。
这个问题目前还没有令人满意的答案。
2 个回答
0
如果你把文件保存为 main.pyw
,那么运行这个脚本的时候就不会打开新的命令提示符窗口或者终端了。
接着你可以通过 python main.pyw
来运行它。
0
首先,你应该始终使用 .pyw
文件格式来制作图形用户界面(GUI)。
其次,如果你想让没有安装 Python 的人也能使用你的程序,可以把它转换成 .exe
文件。这个过程很简单,最难的部分是下载以下其中一个工具:
- 对于 Python 2.x 版本:使用 p2exe
- 对于 Python 3.x 版本:使用 cx_Freeze
如果你决定走这条路,可以在网上搜索一下如何使用这些工具的说明。
另外,如果你在 GUI 中使用了 messageboxes
,那么它是无法正常工作的。你需要改为创建窗口或顶层窗口。