2008-09-21 16 views

Respuesta

192

Suelo usar sys.platform para obtener la plataforma. sys.platform distinguirá entre Linux, otros unixes y OS X, mientras que os.name es "posix" para todos ellos.

Para obtener información mucho más detallada, utilice platform module. Esto tiene funciones multiplataforma que le brindarán información sobre la arquitectura de la máquina, la versión del sistema operativo y del sistema operativo, la versión de Python, etc. También tiene funciones específicas del sistema operativo para obtener cosas como la distribución particular de Linux.

16

https://docs.python.org/library/os.html

Para complementar el post de Greg, si estás en un sistema POSIX, que incluye MacOS, Linux, Unix, etc. puede utilizar os.uname() para obtener una mejor idea de qué tipo de sistema es.

+0

pesar de que su respuesta fue puño y era correcta, la respuesta de Greg Hewgill era más completa, Agradezco su respuesta y le aconsejo que publique más enlaces en el futuro. – UnkwnTech

+0

Sí, es el arma más rápida en el oeste. Tiendo a publicar cosas rápidamente luego edito con más información. – bmdhacks

+0

Normalmente espero para responder mis preguntas y vuelvo a verlas para ver si hay publicaciones mejores, incluso después de haber aceptado una. – UnkwnTech

36
import os 
print os.name 

Esto le proporciona la información esencial que generalmente necesitará. Para distinguir entre, digamos, diferentes ediciones de Windows, deberá usar un método específico de la plataforma.

+18

En el mac, os.name da "posix", que para mi caso no ayuda - sys.platform hizo el truco – Steg

+0

en Windows muestra nt solo –

+1

En solaris, muestra posix también. : p – Khopa

2

Algo a lo largo de las líneas:

import os 
if (os.name == "posix"): 
    print os.system("uname -a") 
# insert other possible OSes here 
# ... 
else: 
    print "unknown OS" 
157

Si desea que los datos legibles por el usuario, pero todavía detallados, se pueden utilizar platform.platform()

>>> import platform 
>>> platform.platform() 
'Linux-3.3.0-8.fc16.x86_64-x86_64-with-fedora-16-Verne' 

platform también tiene algunos otros métodos útiles:

>>> platform.system() 
'Windows' 
>>> platform.release() 
'XP' 
>>> platform.version() 
'5.1.2600' 

Aquí hay algunas posibles llamadas diferentes que puede ma ke para identificar dónde se encuentra

import platform 
import sys 

def linux_distribution(): 
    try: 
    return platform.linux_distribution() 
    except: 
    return "N/A" 

print("""Python version: %s 
dist: %s 
linux_distribution: %s 
system: %s 
machine: %s 
platform: %s 
uname: %s 
version: %s 
mac_ver: %s 
""" % (
sys.version.split('\n'), 
str(platform.dist()), 
linux_distribution(), 
platform.system(), 
platform.machine(), 
platform.platform(), 
platform.uname(), 
platform.version(), 
platform.mac_ver(), 
)) 

Las salidas de este guión corrió en un montón de diferentes sistemas está disponible aquí: https://github.com/hpcugent/easybuild/wiki/OS_flavor_name_version

+0

¡Esta es la respuesta que estaba buscando! –

Cuestiones relacionadas