Tôi sử dụng phiên bản Windows của Python. Tôi có một kịch bản Python sử dụng Pyside (không có gì phức tạp, một loại "hello world").Chúng ta có thể biết liệu một tập lệnh Python được khởi chạy từ Windows hay một thiết bị đầu cuối văn bản?
Khi tôi nhấp vào tệp tập lệnh của mình hoặc nếu tôi khởi chạy nó từ một dòng lệnh, nó thực thi hoàn hảo và tôi có GUI xuất hiện.
Tuy nhiên, tôi muốn tránh có GUI nếu tập lệnh được khởi chạy từ thiết bị đầu cuối văn bản (cmd.exe, cygwin, ...). Một loại tập lệnh tự động biết nếu nó cần có đầu ra GUI hoặc đầu ra văn bản.
Có cách nào dễ dàng và đơn giản để làm điều đó không? Tôi muốn có thể làm điều đó với phiên bản Windows Windows của Python (không phải là phiên bản đi kèm với gói Cygwin).
Một cách rõ ràng là thêm thông số "--no-gui" khi tôi khởi chạy tập lệnh từ thiết bị đầu cuối văn bản, nhưng tôi tự hỏi liệu Python (hoặc một số thư viện Python) đã cung cấp công cụ cho điều đó chưa.
Hơn nữa tôi có máy chủ SSH (Cygwin-base) trên máy tính này, tôi có thể thực thi tập lệnh ở khoảng cách nhưng không có GUI xuất hiện (tất nhiên) và tôi không có thông báo lỗi. Đó là một trường hợp rất thú vị để biết nếu kịch bản thất bại vì thiếu hỗ trợ đồ họa Windows hoặc nếu kịch bản nên thích ứng đầu ra của nó cho một thiết bị đầu cuối văn bản.
Nó không trùng lặp vì câu hỏi này là về Windows, nhưng cuộc thảo luận tại http://stackoverflow.com/questions/3818511/how-to-tell-if-python-script-is-being-run -in-a-terminal-hoặc-via-gui có thể hữu ích. –
thảo luận thêm cũng có tại đây: http://stackoverflow.com/questions/1285024/how-can-i-check-to-see-if-a-python-script-was-started-interactively – Jiri