¿Posibles valores de sys.platform?

Respuestas:

110
┍━━━━━━━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━━━━━━━┑
│ System              │ Value               │
┝━━━━━━━━━━━━━━━━━━━━━┿━━━━━━━━━━━━━━━━━━━━━┥
│ Linux               │ linux or linux2 (*) │
│ Windows             │ win32               │
│ Windows/Cygwin      │ cygwin              │
│ Windows/MSYS2       │ msys                │
│ Mac OS X            │ darwin              │
│ OS/2                │ os2                 │
│ OS/2 EMX            │ os2emx              │
│ RiscOS              │ riscos              │
│ AtheOS              │ atheos              │
│ FreeBSD 7           │ freebsd7            │
│ FreeBSD 8           │ freebsd8            │
│ FreeBSD N           │ freebsdN            │
│ OpenBSD 6           │ openbsd6            │
┕━━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━┙

(*) Antes de Python 3.3, el valor para cualquier versión de Linux es siempre linux2; después, lo es linux.

ICB
fuente
5
Deberías hacer una lista de esto.
Benjamin Paap
3
Probablemente la respuesta más útil al momento de escribir este artículo. Karma adicional para la elegante hoja de cálculo ASCII-art.
Cecil Curry
1
¿Qué pasa con los macOSsistemas actuales ? ¿Todavía resuelven darwin?
blubberdiblub
1
Recibo "linux"
vidstige
1
@blubberdiblub sí.
Michael Leonard
34

Mac OS X (10.4, 10.5, 10.7, 10.8):

darwin

Linux (kernel 2.6):

linux2

Windows XP de 32 bits:

win32

Se han comprobado las versiones entre paréntesis; es probable que otras versiones / versiones más nuevas sean iguales

dbr
fuente
¿Qué pasa con las versiones de OS X superiores a 10.5, también están etiquetadas como 'darwin'? ¿Qué pasa con las versiones del kernel de Linux superiores a 2.6? ¿Versiones de Windows superiores a XP?
Dennis
@Dennis Aclarado en respuesta: las versiones enumeradas son las que he verificado. Estoy casi seguro de que todas las versiones de OS X lo serán darwin, todos los kernels de linux 2.x lo serán linux2y Windows será win32 o win64 ... pero no lo he comprobado
dbr
1
Las versiones más nuevas de Linux pueden tener "linux3" en lugar de "linux2".
MarioVilas
4
@MarioVilas: No, Python se apegó a linux2 incluso para los kernels de linux3 porque no hay diferencia desde la perspectiva de Python.
Martijn Pieters
4
Una instalación de Python de 64 bits en Windows de 64 bits también generará "win32". El uso platform.system()puede ser una solución menos confusa ("Windows" frente a "Linux").
Daniel F
22

Como han indicado otros, sys.platform se deriva del nombre que el proveedor del sistema le da a su sistema. Sin embargo, Python también agrega plat- a sys.path, por lo que puede ver todos los directorios plat- * en la distribución de Python.

Esto te da la lista

aix3 aix4 atheos beos5 darwin freebsd2 freebsd3 freebsd4 freebsd5 freebsd6 freebsd7 genérico irix5 irix6 linux2 mac netbsd1 next3 os2emx riscos sunos5 unixware7

Por supuesto, sys.platform puede tener valores adicionales cuando Python se compila en un sistema para el que no se ha creado un directorio específico de la plataforma.

De aqui .

Trigo Mitch
fuente
5
Excavando a través del código fuente hay unos pocos más comunes: win32, os2,unknown
Nicklas A.
7
En Python 3.3 y posteriores se linux2convierte en linux. fuente
Michael Platings
3
@Deqing: arreglado tres años después :)
xOneca
9

FreeBSD 7.0: freebsd7. FreeBSD8 pero la compilación se realizó en la versión anterior, misma respuesta.

Así que tenga en cuenta que utiliza la plataforma para la compilación, no necesariamente la que está ejecutando.

Keltia
fuente
2

A partir del 29 de diciembre de 2013, OS X 10.9.1 Mavericks todavía tiene la etiqueta Darwin.

Jason Elwood
fuente
1
Darwin es el kernel de OS X. Para obtener el número de versión de OS X, use platform.mac_ver ()
wolfd