Mai mult
Ce sistem de OPERARE sunt eu de fapt?
Ce am nevoie pentru a uite pentru a vedea dacă am'm pe Windows sau Unix, etc?
553
24
Ce am nevoie pentru a uite pentru a vedea dacă am'm pe Windows sau Unix, etc?
Producția de platformă.sistemul()` este după cum urmează:
Darwin
A se vedea: platforma de Acces a platformei de bază datelor de identificare
Dang -- lbrandy mă bate la pumn, dar asta nu't înseamnă că pot't oferi cu sistem de rezultate pentru Vista!
...și nu pot să cred că nimeni nu a postat nimeni pentru Windows 10 încă:
Pentru a înregistra aici's rezultatele pe Mac:
Mostre de cod pentru a diferenția OS's utilizarea python:
Puteți folosi, de asemenea,
sys.platforma
dacă aveți deja importatesys
și nu't doriți să importați un alt modulDacă doriți utilizator date pot fi citite, dar mai detaliate, puteți utiliza platforma.platforma()
Aici's câteva posibile diferite apeluri puteți face pentru a identifica în cazul în care sunt
Ieșirile de acest script a fugit pe câteva sisteme diferite (Linux, Windows, Solaris, MacOS) și arhitecturi (x86, x64, Itanium, power pc, sparc) este disponibil aici: https://github.com/hpcugent/easybuild/wiki/OS_flavor_name_version
Ubuntu 12.04 server, de exemplu, vă oferă:
Cât despre un nou răspuns:
Aceasta ar fi cea de ieșire dacă am fost folosind MACOS
Eu sunt, folosind WLST instrument care vine cu weblogic, și nu't implementa platforma pachet.
În afară de patch-uri de sistem javaos.py (problema cu sistemul de operare.sistemul() pe windows 2003 cu jdk1.5) (care nu pot't face, trebuie să utilizați weblogic afară de la cutie), acest lucru este ceea ce am folosi:
Pentru Jython singura modalitate de a obține nume de sistem de operare am găsit este de a verifica
os.numele
Java proprietate (incercat cusys
, `os " și " platforma de module pentru Jython 2.5.3 pe WinXP):/usr/bin/python3.2
Am început un pic mai sistematică listă de ce valori vă puteți aștepta folosind diverse module (simțiți-vă liber pentru a edita și adăuga sistemul dvs.):
Linux (64bit) + WSL
sistem de operare.numele posix sys.platforma linux platforma.sistemul() Linux sysconfig.get_platform() linux-x86_64 platforma.machine() x86_64 platforma.arhitectura() ('64bit', '')
sys.platforma este terminația de versiunea de kernel, de exemplu, linux2
, totul rămâne identicWINDOWS (pe 64 de biți)
(cu 32 de biți coloana de funcționare în 32 de biți subsistem)
`` oficial python instalare pe 64 de biți pe 32 de biți
sistem de operare.numele nt nt sys.platforma win32 win32 platforma.sistemul() Windows Windows sysconfig.get_platform() win-amd64 win32 platforma.machine() AMD64 AMD64 platforma.arhitectura() ('64bit', 'WindowsPE') ('64bit', 'WindowsPE')
msys2 64 de biți pe 32 de biți
sistem de operare.numele posix posix sys.platforma msys msys platforma.sistemul() MSYS_NT-10.0 MSYS_NT-10.0-WOW sysconfig.get_platform() msys-2.11.2-x86_64 msys-2.11.2-i686 platforma.machine() x86_64 i686 platforma.arhitectura() ('64bit', 'WindowsPE') ('32bit', 'WindowsPE')
msys2 mingw-w64-x86_64-python3 mingw-w64-i686-python3
sistem de operare.numele nt nt sys.platforma win32 win32 platforma.sistemul() Windows Windows sysconfig.get_platform() mingw mingw platforma.machine() AMD64 AMD64 platforma.arhitectura() ('64bit', 'WindowsPE') ('32bit', 'WindowsPE')
cygwin pe 64 de biți pe 32 de biți
sistem de operare.numele posix posix sys.platforma cygwin cygwin platforma.sistemul() CYGWIN_NT-10.0 CYGWIN_NT-10.0-WOW sysconfig.get_platform() cygwin-3.0.1-x86_64 cygwin-3.0.1-i686 platforma.machine() x86_64 i686 platforma.arhitectura() ('64bit', 'WindowsPE') ('32bit', 'WindowsPE')
``
Câteva observații:
distutils.util.get_platform()
care este identică cu `sysconfig.get_platformPentru a compara cu sistemul dvs., pur și simplu rulați acest script (și vă rog să adăugați rezultatele aici dacă lipsesc :)
`` din viitoarele import print_function import os import sys import platforma import sysconfig
de imprimare("sistem de operare.numele ", os.numele) de imprimare("sys.platforma ", sys.platforma) de imprimare("platforma.sistemul() ", platforma.sistemul()) de imprimare("sysconfig.get_platform() ", sysconfig.get_platform()) de imprimare("platforma.machine() ", platforma.machine()) de imprimare("platforma.arhitectura() ", platforma.arhitectura()) ``
Ai grija daca're pe Windows cu Cygwin unde
os.numele "este" posix
.Rezultate interesante pe windows 8:
Edit: Care's o bug
în aceeași ordine de idei....
Dacă nu sunteți în căutarea pentru versiunea de kernel, etc, dar în căutarea pentru distributie de linux, poate doriți să utilizați următoarele
în python2.6+
în python2.4
Evident, acest lucru va funcționa numai dacă se execută pe linux. Dacă doriți să aveți mai generic script pe platforme, puteți amesteca cu mostre de cod dat alte răspunsuri.
încercați acest lucru:
și tu poți face asta :
Există 3 moduri de a obține OPERARE în Python, fiecare cu propriile sale pro și contra:
Metoda 1
Cum funcționează (sursa): pe plan Intern se numește sistem de OPERARE Api-uri pentru a obține numele de OPERARE, astfel cum sunt definite de sistemul de OPERARE. Acest lucru se poate schimba în mod evident de la o versiune la alta, așa că mai bine să nu utilizeze în mod direct. A se vedea aici pentru diferite OS-valori specifice.
Metoda 2
Cum funcționează (sursa): pe plan Intern se verifică dacă python are OS-module specifice numite posix sau nt. Dacă doriți să importați aceste module și metodele de apel pe ea, acest lucru funcționează foarte bine. Rețineți că nu există nici o diferențiere între Linux sau OSX.
Metoda 3
Cum funcționează (sursa): pe plan Intern, se va apela în cele din urmă interne de OPERARE Api-uri, pentru a primi versiunea sistemului de OPERARE-nume specific ca 'win32' sau 'win16' sau 'linux1' si apoi normalizarea la mai multe nume generice ca 'Windows' sau 'Linux' sau 'Darwin' prin aplicarea de mai multe euristici. Acesta este cel mai bun mod portabil pentru a obține normalizat nume de sistem de OPERARE.
Sumar
posix
saunt
apoi utilizațios.numele
.Verifica testele disponibile cu modul de platformă și de imprimare răspunsul pentru sistemul dvs.:
De asemenea, puteți utiliza numai platform module fără importul de operare, modul de a obține toate informațiile.
Un frumos și îngrijit aspect de raportare scop poate fi realizat folosind această linie:
Care vă oferă această ieșire:
Ceea ce lipsește de obicei este versiunea sistemului de operare, dar ar trebui să știi dacă executați windows, linux sau mac o platformă independentă mod este de a utiliza acest test:
Această soluție funcționează atât pentru
python " și " jython
.modulul os_identify.py:
Folosi astfel: