如何将wxPython应用转换为无头Unix作业?
我现在在一台Linux机器上运行的是wx的版本2.8.9.1。
我正在开发的应用程序最开始是为了在Windows系统上运行的。我们计划把核心逻辑的一部分移植到Linux上,并作为一个进程运行。
问题是这台Linux机器是无头的,也就是说没有图形界面(X-windows环境)。但现有的代码是写得很依赖wx这个图形库。
举个例子,我有几个类是wx.EvtHandler的子类。
我可能可以一个一个地重写这些类,但这样做并不是最理想的办法。
在新的wx Pheonix版本中,有一个AppConsole类,看起来可以在没有X-Windows的情况下启动事件循环。不过我本地的wx版本里没有这个类。
我们的最终目标是在定时任务中运行这段代码。
我基本上是在寻找一些建议或指引,看看如何解决这个问题。能尽量少重写代码就好了。
2 个回答
0
结果发现,重写代码并没有那么难。
我的代码中只依赖了三个wx对象:
1) 继承wx.EvtHandler
2) wx.CallLater
3) wx.CallAfter
所以第一个情况需要重新实现一下。
而其他两个可以很简单地用threading.Timer来替代。