[英]Detect if X11 is available (python)
首先,檢測 X11 是否正在運行並且可用於 python 腳本的最佳/最簡單的方法是什么。
父進程?
會議負責人?
X 環境變量?
其他?
其次,如果可用,我想要一個實用程序(python 腳本)來呈現 gui,否則使用命令行支持的工具。
我突然想到了這個
-main python 腳本(檢測 gui 是否可用並啟動適當的腳本)
-gui 或命令行 python 腳本啟動
- 都使用通用模塊來做實際工作
我非常願意接受簡化這一點的建議。
檢查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
至於你問題的第二部分,我建議使用以下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()
我會檢查是否設置了 DISPLAY(這畢竟是 C API X11 應用程序所做的)。
import os
if os.environ.get('DISPLAY'):
print("X11 is available")
您可以簡單地啟動 gui 部分,並捕獲它在 X(或任何其他平台相關圖形系統不可用時引發的異常)。
在運行基於文本的部分之前,請確保您確實有一個交互式終端。 您的進程可能在沒有可見終端的情況下啟動,這在 KDE、gnome 或 Windows 等圖形用戶環境中很常見。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.