【发布时间】:2014-05-14 15:40:30
【问题描述】:
我正在用 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 的修复,因为它取决于了解窗口系统的细节(这可能将来某个时候很容易坏),我想知道是否有更清洁的方法。
这个问题还没有满意的答案。
【问题讨论】:
-
你是否反对使用 PyInstaller 之类的东西?我发现它通常使跨平台分发变得更加容易,因为它捆绑了您所有的库需求和特定的 python 版本。
-
不,我并不反对使用工具让我的生活更轻松——我只是对跨平台分发一无所知。不幸的是,似乎没有人让 pyinstaller 使用科学的 python 发行版(我正在使用 canopy)。感谢您的建议。
标签: python user-interface cross-platform