मुझे कैसे पता चलेगा कि मेरा डेस्कटॉप वातावरण पाइथन का उपयोग कर रहा है? मुझे परिणाम gnome या केडीई या अन्यथा परिणाम पसंद है।मेरा वर्तमान डेस्कटॉप वातावरण क्या है?
उत्तर
उबंटू 9.10 में परीक्षण किया गया:
>>> import os
>>> os.environ.get('DESKTOP_SESSION')
'gnome'
संपादित करें: के रूप में नीचे टिप्पणी में उल्लेख किया है, इस दृष्टिकोण अधिक कुछ OSes के लिए काम नहीं करेगा। अन्य दो उत्तर वर्कअराउंड प्रदान करते हैं।
आप इस कोशिश कर सकते हैं:
def detect_desktop_environment():
desktop_environment = 'generic'
if os.environ.get('KDE_FULL_SESSION') == 'true':
desktop_environment = 'kde'
elif os.environ.get('GNOME_DESKTOP_SESSION_ID'):
desktop_environment = 'gnome'
else:
try:
info = getoutput('xprop -root _DT_SAVE_MODE')
if ' = "xfce4"' in info:
desktop_environment = 'xfce'
except (OSError, RuntimeError):
pass
return desktop_environment
और यहाँ चर्चा पढ़ें: http://ubuntuforums.org/showthread.php?t=1139057
यह मेरे डेस्कटॉप के लिए केडीई का पता लगाने के लिए काम करता है (DESKTOP_SESSION के विपरीत, जो कोई भी नहीं देता है) – JAL
इस पर एक अद्यतन। 'Xprop -root | का प्रयोग करें grep -io 'xfce'' और फिर कम से कम' xfce 'और' lxde 'के बीच वैकल्पिक। यह रास्पियन और उबंटू स्टूडियो पर काम करता है। एक बयान के तहत बेहतर समझ या चयन के लिए आउटपुट को कम केस में बदलें। – DarkXDroid
कभी कभी लोगों को डेस्कटॉप वातावरण का मिश्रण चलाते हैं। xdg-utils का उपयोग करके अपना ऐप डेस्कटॉप-अज्ञेयवादी बनाएं; इसका मतलब है कि का उपयोग फ़ाइल या यूआरएल खोलने के लिए, xdg-user-dir DOCUMENTS
का उपयोग करके दस्तावेज़ फ़ोल्डर, xdg-email
ई-मेल भेजने के लिए, और इसी तरह के लिए।
मैं अपनी परियोजनाओं में से एक में इस का उपयोग करें:
def get_desktop_environment(self):
#From http://stackoverflow.com/questions/2035657/what-is-my-current-desktop-environment
# and http://ubuntuforums.org/showthread.php?t=652320
# and http://ubuntuforums.org/showthread.php?t=652320
# and http://ubuntuforums.org/showthread.php?t=1139057
if sys.platform in ["win32", "cygwin"]:
return "windows"
elif sys.platform == "darwin":
return "mac"
else: #Most likely either a POSIX system or something not much common
desktop_session = os.environ.get("DESKTOP_SESSION")
if desktop_session is not None: #easier to match if we doesn't have to deal with caracter cases
desktop_session = desktop_session.lower()
if desktop_session in ["gnome","unity", "cinnamon", "mate", "xfce4", "lxde", "fluxbox",
"blackbox", "openbox", "icewm", "jwm", "afterstep","trinity", "kde"]:
return desktop_session
## Special cases ##
# Canonical sets $DESKTOP_SESSION to Lubuntu rather than LXDE if using LXDE.
# There is no guarantee that they will not do the same with the other desktop environments.
elif "xfce" in desktop_session or desktop_session.startswith("xubuntu"):
return "xfce4"
elif desktop_session.startswith("ubuntu"):
return "unity"
elif desktop_session.startswith("lubuntu"):
return "lxde"
elif desktop_session.startswith("kubuntu"):
return "kde"
elif desktop_session.startswith("razor"): # e.g. razorkwin
return "razor-qt"
elif desktop_session.startswith("wmaker"): # e.g. wmaker-common
return "windowmaker"
if os.environ.get('KDE_FULL_SESSION') == 'true':
return "kde"
elif os.environ.get('GNOME_DESKTOP_SESSION_ID'):
if not "deprecated" in os.environ.get('GNOME_DESKTOP_SESSION_ID'):
return "gnome2"
#From http://ubuntuforums.org/showthread.php?t=652320
elif self.is_running("xfce-mcs-manage"):
return "xfce4"
elif self.is_running("ksmserver"):
return "kde"
return "unknown"
def is_running(self, process):
#From http://www.bloggerpolis.com/2011/05/how-to-check-if-a-process-is-running-using-python/
# and http://richarddingwall.name/2009/06/18/windows-equivalents-of-ps-and-kill-commands/
try: #Linux/Unix
s = subprocess.Popen(["ps", "axw"],stdout=subprocess.PIPE)
except: #Windows
s = subprocess.Popen(["tasklist", "/v"],stdout=subprocess.PIPE)
for x in s.stdout:
if re.search(process, x):
return True
return False
धन्यवाद! यह पूर्ण है! – nachopro
आपको इसका पाइथन मॉड्यूल बनाना चाहिए और इसे पीपीपीआई पर रखना चाहिए। – Jabba
मुझे उबंटू स्टूडियो पर 'os.en वातावरण.get ("DESKTOP_SESSION")' थ्रो 'ubuntustudio' जोड़ना चाहिए। सही डेस्कटॉप वातावरण प्राप्त करने के लिए मैं 'os.environ [' XDG_CURRENT_DESKTOP '] का उपयोग करता हूं।' Xfce 'पाने के लिए निम्न() '। यह इस भयानक कोड का विस्तार करने के लिए एक कामकाज है। इसे अपलोड करें – DarkXDroid
- 1. ग्राफ़िकल शैल और डेस्कटॉप वातावरण के बीच क्या अंतर है
- 2. एक साधारण डेस्कटॉप वातावरण कैसे बनाएं?
- 3. जांचें कि वर्तमान डेस्कटॉप पर विंडो चालू है या नहीं?
- 4. मेरा वर्तमान कल्चर एन-जीबी और मेरा वर्तमान यूआईसील्चर एन-यूएस
- 5. क्या मेरा वर्चुअल वातावरण (पायथन) मेरे पायथनपैथ को तोड़ने का कारण बनता है?
- 6. क्या कोई जावा कर्नेल/डेस्कटॉप अनुप्रयोग है?
- 7. मेरा हैप्रॉक्स संस्करण क्या है?
- 8. क्या मेरा दृश्य एन्क्रिप्टेड है?
- 9. आप वर्तमान उपयोगकर्ता को विंडोज वातावरण में कैसे ढूंढते हैं?
- 10. "इस मॉनिटर पर मेरा विंडोज डेस्कटॉप बढ़ाएं" प्रोग्रामेटिक रूप से
- 11. आर्कजीआईएस डेस्कटॉप एपीआई - जांचें कि क्या प्रतिपादन
- 12. "वर्तमान" डेल्फी वेब ऐप ढांचा क्या है?
- 13. क्या कोई प्रोग्रामिंग वातावरण है जो आईफोन पर चलता है?
- 14. वर्चुअलाइज्ड या गैर वर्चुअलाइज्ड वातावरण पर मेरा ओएस चल रहा है या नहीं?
- 15. डेस्कटॉप
- 16. बैच फ़ाइल में वर्तमान निर्देशिका क्या है?
- 17. डेस्कटॉप एकीकृत एप्लिकेशन (डेस्कटॉप विजेट जैसे)
- 18. Sitecore वातावरण
- 19. सी # डेस्कटॉप अनुप्रयोग?
- 20. Virtualenv वातावरण नहीं बना रहा
- 21. "मेरा ($ self,% myInputs) = @_;" क्या मतलब है?
- 22. क्या मेरा प्रोग्राम ट्यूरिंग-पूरा है?
- 23. क्या WPF कारण मेरा एप्लिकेशन धीमा है?
- 24. क्या मेरा PHP कोड ऑब्जेक्ट उन्मुख है?
- 25. उपयोगकर्ता वातावरण चर
- 26. मैं अन्य एप्लिकेशन को कैसे सूचित करूं कि मेरा एप्लिकेशन विंडोज डेस्कटॉप का हिस्सा है?
- 27. Grails वातावरण
- 28. क्या उपयोगकर्ता मेरा रेल ऐप चला रहा है?
- 29. वैश्विक वातावरण है कि वर्तमान में सी ++ में स्थापित किया जाएगा प्राप्त करें?
- 30. क्या libGDX डेस्कटॉप-केवल एप्लिकेशन विकास के लिए उपयुक्त है?
सिर्फ एक जवाब है कि प्रक्रियाओं की गणना शामिल लेखन के बीच में था, लेकिन यह ज्यादा बेहतर है। – mdm
मैक ओएस एक्स 10.6.2 'os.en वातावरण.get (' DESKTOP_SESSION ') पर' '"कोई नहीं" ' –
मुझे लगता है क्योंकि मैक में केवल एक ही है! – aliva