我有一个python控制台应用程序。像大多数python控制台应用程序一样,它使用OptionParser模块来获取参数。我现在使用wxPython为我的应用程序开发了一个GUI,我想整合这两个。我希望我的应用程序可以从控制台和操作系统的UI运行。当它从控制台调用时,它作为控制台应用程序运行,当它在操作系统的UI中双击时,它作为GUI应用程序运行。我怎么能这样做?有人能告诉我一个__main__
块应该是什么样的片段吗?
非常感谢。
答案 0 :(得分:2)
你可以将args传递给app然后使用arg解析器吗?
if __name__ == "__main__":
from optparse import OptionParser
parser = OptionParser()
parser.add_option("-g","--gui_mode",
dest="guimode",
help="start program in gui mode",
action="store_true")
(options,args) = parser.parse_args()
if (options.guimode):
print "start wx app"
else:
print "start cmd line app"
修改强>
对不起,误读,我以为你想从另一个Wx App开始。而不是来自“OS UI”
我不知道这是一个很好的跨平台方式。问题是在windows .py
文件中通常与python.exe相关联.pyw
文件类似,但没有控制台窗口。
因此,您实际上必须修改操作系统以支持此行为。例如,您可以创建一个快捷方式(在windows / gnome / kde中),该快捷方式使用--gui_mode启动程序或使用* nix操作系统中建议的@Austin等机制。
如果您要安装应用程序,可以通过disttools自动完成其中一些内容
答案 1 :(得分:0)
尝试:
import os
print os.environ
并在双击时执行脚本时将os.environ ['TERM']输出到tkinter窗口。
对我来说,这是'xterm-color'。
您使用的是哪种操作系统?您如何确保双击.py文件将导致其执行?