Mamy skrypt, który używa platform module do wykrywania wersji OS naszych różnych klientów.Wykryj Windows 8.1 w Pythonie?
Przeglądając źródło dla platform.py, widzę, że w systemach Windows używa on sys.getwindowsverion(). Niestety, Windows 8.1 Systemy, że poszczególne raporty funkcyjne:
>>> sys.getwindowsversion()
sys.getwindowsversion(major=6, minor=2, build=9200, platform=2, service_pack='')
systemie Windows 8.1 jest 6.3.9600:
Microsoft Windows [Version 6.3.9600]
(c) 2013 Microsoft Corporation. All rights reserved.
C:\Windows\system32>ver
Microsoft Windows [Version 6.3.9600]
Tak, zdaję sobie sprawę, mogę napisać trochę więcej logiki wokół mojego zaproszenia do platform.release(), a jeśli to zwróci 8, wykonaj dodatkowe sprawdzenie i spróbuj uruchomić ver
, ale wydaje się to nieco zawiłe.
Czy ktoś wie o lepszy sposób?
Uruchamianie ActivePython 2.7.2.5 na wszelki wypadek. . .
Windows może cię okłamać, jeśli zdecyduje, że powinieneś działać w trybie win8. Może się tak zdarzyć w przypadku aplikacji win8 w wersji nowoczesnej, które nie zostały zaktualizowane do wersji 8.1, ale wątpię, aby współczesny Python został uruchomiony. – ohmusama
Och, krówki. Python używa do tego funkcji [MS 'GetVersionEx()' (http://msdn.microsoft.com/en-us/library/windows/desktop/ms724451 (v = vs.85) .aspx). Podążaj za linkiem: wygląda na to, że zastępują go bezużytecznym nowym funkcjonowaniem :-( –
FYI, [otworzyłem zgłoszenie błędu na ten temat] (http://bugs.python.org/issue19143) na temat śledzenia błędów Pythona W międzyczasie rób wszystko, co działa ;-) –