有没有一种简单的方法来检测像 GTK 这样的东西,所以它只在 GTK 存在时应用代码?
首先,将您的应用分成 3 个独立的模块。
实际工作:foo_core.py
。
导入的 CLI 模块foo_core
。调用它foo_cli.py
。
导入的 GUI 模块foo_core
。调用它foo_gui.pyw
。
该foo_cli
模块看起来像这样。
import foo_core
import optparse
def main():
# parse the command-line options
# the real work is done by foo_core
if __name__ == "__main__":
main()
该foo_gui
模块可能看起来像这样。
import foo_core
import gtk # or whatever
def main()
# build the GUI
# real work is done by foo_core under control of the GUI
if __name__ == "__main__":
main()
这通常就足够了。可以信任人们自己决定是否需要 CLI 或 GUI。
如果你想迷惑人们,你可以编写一个foo.py
类似下面的脚本。
try:
import foo_gui
foo_gui.main()
except ImportError:
import foo_cli
foo_cli.main()