2011-12-01 16 views
8

Tengo un programa en Python 3.2 que funciona de esta manera:determinar si pitón se ejecuta en Ubuntu Linux

import platform 
sysname = platform.system() 
sysver = platform.release() 
print(sysname+" "+sysver) 

Y en las ventanas vuelve:

Windows 7

Pero en Ubuntu y otros se vuelve:
Linux 3.0.0-13-generic

necesito algo como:

Ubuntu 11.10 o Mint 12

+2

http://docs.python.org/library/platform.html#platform.linux_distribution – Gazler

+0

Gracias, realmente deben leer los documentos más, ¿eh? – triunenature

Respuesta

5

Probar platform.dist.

>>> platform.dist() 
('Ubuntu', '11.10', 'oneiric') 
+4

platform.dist() está desactualizado, deberíamos usar platform.linux_distribution() (solo lea los documentos, gracias a @Gazler) – triunenature

+0

@triunenature: No existe tal advertencia de desaprobación en Python 3. http: // docs .python.org/py3k/library/platform.html # platform.dist –

+1

Es bueno saber: DI realmente necesita leer esos documentos con más cuidado. – triunenature

0

O bien, puede hacer esto:

import sys 
sys.platform 

Sería volver: 'linux2', o se puede aplicar try..finally bloque de código.

+0

sí, pero el problema, solo devuelve linux2, no me da detalles ... y el objetivo aquí es ser muy específico. Ubuntu 10.04, o lo que sea, pero solo me dice que es Linux o postox no ayuda – triunenature

6

La respuesta actualmente aceptada usa una función obsoleta. La forma correcta de hacer esto a partir de Python 2.6 y posterior es:

import platform 
print(platform.linux_distribution()) 

La documentación no dice si esta función está disponible en plataformas que no son Linux, pero en mi escritorio de Windows local me sale:

>>> import platform 
>>> print(platform.linux_distribution()) 
('', '', '') 

también hay esto, hacer algo similar en máquinas Win32:

>>> print(platform.win32_ver()) 
('post2008Server', '6.1.7601', 'SP1', 'Multiprocessor Free') 
-1
is_ubuntu = 'ubuntu' in os.getenv('DESKTOP_SESSION', 'unknown') 

recoge si está runnning en U nity o Unity-2D si eso es lo que estás buscando.

+1

¿Qué sucede si se ejecuta en una instalación de servidor ubuntu sin un escritorio? –

+0

La idea no era buscar ubuntu, es para mapear qué sistema operativo se está ejecutando. – triunenature

Cuestiones relacionadas