platform — Información de versión del sistema¶
Propósito: | Analiza el hardware de la plataforma subyacente, el sistema operativo y la información de versión del intérprete. |
---|
Aunque Python se usa a menudo como un lenguaje multiplataforma, ocasionalmente
es necesario saber en qué tipo de sistema se está ejecutando un programa. Las
herramientas de compilación necesitan esa información, pero una aplicación
también puede saber que algunas de las bibliotecas o comandos externos que usa
tienen diferentes interfaces en diferentes sistemas operativos. Por ejemplo,
una herramienta para administrar la configuración de red de un sistema
operativo puede definir una representación portátil de interfaces de red,
alias, direcciones IP, etc. Pero cuando llega el momento de editar los
archivos de configuración, debe saber más sobre el host para que pueda puede
usar los comandos y archivos de configuración correctos del sistema operativo.
El módulo platform
incluye las herramientas para aprender sobre el
intérprete, el sistema operativo y la plataforma de hardware donde se ejecuta
un programa.
Nota
El resultado de ejemplo en esta sección se generó en tres sistemas: una Mac mini con OS X 10.11.6, una PC Dell con Ubuntu Linux 14.04 y una VM VirtualBox con Windows 10. Se instaló Python en los sistemas OS X y Windows utilizando instaladores precompilados de python.org. El sistema Linux está ejecutando una versión en un paquete del sistema.
Un agradecimiento especial a Patrick Kettner (@patrickkettner) por ayudar a recopilar la salida de ejemplo en Windows.
Intérprete¶
Hay cuatro funciones para obtener información sobre el intérprete actual de
Python. python_version()
y python_version_tuple()
devuelven diferentes
formas de la versión del intérprete con componentes principales, secundarios y
de nivel de parche. python_compiler()
informa sobre el compilador
utilizado para construir el intérprete. Y python_build()
proporciona una
cadena de versión para la compilación del intérprete.
import platform
print('Version :', platform.python_version())
print('Version tuple:', platform.python_version_tuple())
print('Compiler :', platform.python_compiler())
print('Build :', platform.python_build())
OS X:
$ python3 platform_python.py
Version : 3.6.4
Version tuple: ('3', '6', '4')
Compiler : GCC 4.2.1 (Apple Inc. build 5666) (dot 3)
Build : ('v3.6.4:d48ecebad5', 'Dec 18 2017 21:07:28')
Linux:
$ python3 platform_python.py
Version : 3.5.2
Version tuple: ('3', '5', '2')
Compiler : GCC 4.8.4
Build : ('default', 'Jul 17 2016 00:00:00')
Windows:
C:\>Desktop\platform_python.py
Version : 3.5.1
Version tuple: ('3', '5', '1')
Compiler : MSC v.1900 64 bit (AMD64)
Build : ('v3.5.1:37a07cee5969', 'Dec 6 2015 01:54:25')
Platforma¶
La función platform()
devuelve una cadena que contiene un identificador de
plataforma de propósito general. La función acepta dos argumentos booleanos
opcionales. Si alias
es Verdadero, los nombres en el valor de retorno se
convierten de un nombre formal a su forma más común. Cuando terse
es
verdadero, se devuelve un valor mínimo con algunas partes descartadas en lugar
de la cadena completa.
import platform
print('Normal :', platform.platform())
print('Aliased:', platform.platform(aliased=True))
print('Terse :', platform.platform(terse=True))
OS X:
$ python3 platform_platform.py
Normal : Darwin-17.4.0-x86_64-i386-64bit
Aliased: Darwin-17.4.0-x86_64-i386-64bit
Terse : Darwin-17.4.0
Linux:
$ python3 platform_platform.py
Normal : Linux-3.13.0-55-generic-x86_64-with-Ubuntu-14.04-trusty
Aliased: Linux-3.13.0-55-generic-x86_64-with-Ubuntu-14.04-trusty
Terse : Linux-3.13.0-55-generic-x86_64-with-glibc2.9
Windows:
C:\>platform_platform.py
Normal : Windows-10-10.0.10240-SP0
Aliased: Windows-10-10.0.10240-SP0
Terse : Windows-10
Información del sistema operativo y del hardware¶
También se puede obtener información más detallada sobre el sistema operativo y
el hardware con el que se ejecuta el intérprete. uname()
devuelve una
tupla que contiene los valores del sistema, nodo, versión, versión, máquina y
procesador. Se puede acceder a los valores individuales a través de las
funciones de los mismos nombres, que se enumeran en the table below.
Función | Valor de retorno |
---|---|
system() |
nombre del sistema operativo |
node() |
nombre de host del servidor, no calificado |
release() |
versión del sistema operativo |
version() |
información del sistema más detallada |
machine() |
un identificador del timpo de hardware, como 'i386' |
processor() |
un identificador real del procesador (el mismo valor que machine() en muchos casos) |
import platform
print('uname:', platform.uname())
print()
print('system :', platform.system())
print('node :', platform.node())
print('release :', platform.release())
print('version :', platform.version())
print('machine :', platform.machine())
print('processor:', platform.processor())
OS X:
$ python3 platform_os_info.py
uname: uname_result(system='Darwin', node='hubert.local',
release='17.4.0', version='Darwin Kernel Version 17.4.0: Sun Dec
17 09:19:54 PST 2017; root:xnu-4570.41.2~1/RELEASE_X86_64',
machine='x86_64', processor='i386')
system : Darwin
node : hubert.local
release : 17.4.0
version : Darwin Kernel Version 17.4.0: Sun Dec 17 09:19:54 PST
2017; root:xnu-4570.41.2~1/RELEASE_X86_64
machine : x86_64
processor: i386
Linux:
$ python3 platform_os_info.py
uname: uname_result(system='Linux', node='apu',
release='3.13.0-55-generic', version='#94-Ubuntu SMP Thu Jun 18
00:27:10 UTC 2015', machine='x86_64', processor='x86_64')
system : Linux
node : apu
release : 3.13.0-55-generic
version : #94-Ubuntu SMP Thu Jun 18 00:27:10 UTC 2015
machine : x86_64
processor: x86_64
Windows:
C:\>Desktop\platform_os_info.py
uname: uname_result(system='Windows', node='IE11WIN10',
release='10', version='10.0.10240', machine='AMD64',
processor='Intel64 Family 6 Model 70 Stepping 1, GenuineIntel')
system : Windows
node : IE11WIN10
release : 10
version : 10.0.10240
machine : AMD64
processor: Intel64 Family 6 Model 70 Stepping 1, GenuineIntel
Arquitectura ejecutable¶
La información de la arquitectura del programa individual se puede probar
utilizando la función architecture()
. El primer argumento es la ruta a un
programa ejecutable (predeterminado a sys.executable
, el intérprete de
Python). El valor de retorno es una tupla que contiene la arquitectura de bits
y el formato de enlace utilizado.
import platform
print('interpreter:', platform.architecture())
print('/bin/ls :', platform.architecture('/bin/ls'))
OS X:
$ python3 platform_architecture.py
interpreter: ('64bit', '')
/bin/ls : ('64bit', '')
Linux:
$ python3 platform_architecture.py
interpreter: ('64bit', 'ELF')
/bin/ls : ('64bit', 'ELF')
Windows:
C:\>Desktop\platform_architecture.py
interpreter: ('64bit', 'WindowsPE')
/bin/ls : ('64bit', '')