首先,检测X11是否正在运行并且可用于python脚本的最佳/最简单方法是什么.
父进程?
会议领导?
X环境变量?
其他?
其次,我想有一个实用程序(python脚本)来呈现一个gui(如果可用),否则使用命令行支持的工具.
我想到了这一点
-main python脚本(检测gui是否可用并启动相应的脚本)
-gui或命令行python脚本启动
-both使用通用模块进行实际工作
我非常愿意提出简化这一建议的建议.
检查返回代码xset -q:
def X_is_running():
from subprocess import Popen, PIPE
p = Popen(["xset", "-q"], stdout=PIPE, stderr=PIPE)
p.communicate()
return p.returncode == 0
Run Code Online (Sandbox Code Playgroud)
至于你问题的第二部分,我建议采用以下main.py结构:
import common_lib
def gui_main():
...
def cli_main():
...
def X_is_running():
...
if __name__ == '__main__':
if X_is_running():
gui_main()
else:
cli_main()
Run Code Online (Sandbox Code Playgroud)
您可以简单地启动gui部分,并捕获X(或任何其他依赖于平台的图形系统不可用)引发的异常。
在运行基于文本的部分之前,请确保您确实有一个交互式终端。您的过程可能没有可见的终端启动,这在图形用户环境(如KDE,gnome或Windows)中很常见。
| 归档时间: |
|
| 查看次数: |
2803 次 |
| 最近记录: |