platform — Acceso a los datos identificativos de la plataforma subyacente

código fuente: Lib/platform.py


Nota

Plataformas específicas listadas alfabéticamente, con Linux incluido en la sección de Unix.

Plataforma cruzada

platform.architecture(executable=sys.executable, bits='', linkage='')

Consulta el ejecutable provisto (por defecto el archivo binario del intérprete de Python) para obtener información de diversas arquitecturas.

Retorna una tupla (bits, linkage), siendo bits la información sobre la arquitectura del procesador y linkage el formato de conexión usado por el ejecutable. Ambos valores se retornan como cadenas.

Los valores que no se pueden determinar se retornan según lo indicado por los ajustes por defecto de los parámetros. Si bits se da como '', el sizeof(pointer) (o sizeof(long) en la versión de Python < 1.5.2) se utiliza como indicador para el tamaño del puntero admitido.

La función se basa en el comando file del sistema para realizar la tarea. Está disponible en la mayoría de las plataformas Unix, si no en todas, y en algunas plataformas que no son de Unix y solo si el ejecutable apunta al intérprete de Python. Unos valores por defecto se utilizan cuando no se satisfacen las necesidades anteriores.

Nota

On macOS (and perhaps other platforms), executable files may be universal files containing multiple architectures.

Para llegar a los «64-bits» del intérprete actual, es más seguro consultar el atributo sys.maxsize:

is_64bits = sys.maxsize > 2**32
platform.machine()

Retorna el tipo de máquina, por ejemplo 'i386'. Si no se puede determinar el valor, se retorna una cadena vacía.

platform.node()

Retorna el nombre de la red del ordenador (¡tal vez no sea el nombre completo!). Si no se puede determinar el valor, se retorna una cadena vacía.

platform.platform(aliased=0, terse=0)

Retorna una sola cadena identificando la plataforma subyacente con la mayor información útil posible.

La salida se intenta que sea humanamente legible más que tratable por una máquina. Tal vez la salida sea diferente en diversas plataformas y eso mismo es lo que se pretende.

Si aliased es verdadero, la función usará aliases para varias plataformas que informen de nombres de sistema que sean diferentes a sus nombres comunes. Por ejemplo, SunOS se reportará como Solaris. La función system_alias() ha sido usada para implementar esto.

Estableciendo terse a verdadero provoca que la función retorne el mínimo de información necesaria para identificar la plataforma.

Distinto en la versión 3.8: En macOS, la función ahora usa mac_ver(), si retorna una cadena no vacía para obtener la versión de macOS más que la versión de darwin.

platform.processor()

Retorna el nombre (real) del procesador. E.j. 'amdk6'.

Una cadena vacía se retorna si el valor no se puede determinar. Destacar que muchas plataformas no proveen esta información o simplemente retorna los mismos valores que para machine(), como hace NetBSD.

platform.python_build()

Retorna una tupla (buildno, builddate) con buildno indicando el número de la build de Python y builddate su fecha de publicación como cadenas.

platform.python_compiler()

Retorna la string con la identificación del compilador usado para compilar Python.

platform.python_branch()

Retorna la string identificando la implementación de la rama SCM de Python.

platform.python_implementation()

Retorna la string identificando la implementación de Python. Algunos valores posibles son: “CPython”, “IronPython”, “Jython”, “PyPy”.

platform.python_revision()

Retorna la string identificando la implementación de la revisión SCM de Python.

platform.python_version()

Retorna la versión de Python en formato de cadena de caracteres con la forma 'major.minor.patchlevel' siendo major la versión principal, minor la versión menor y patchlevel el último parche aplicado.

Destacar que a diferencia del sys.version de Python, el valor retornado siempre incluirá el último parche aplicado (siendo 0 por defecto).

platform.python_version_tuple()

Retorna la versión de Python como una tupla (major, minor, patchlevel) de cadena, siendo major la versión principal, minor la versión menor y patchlevel último parche aplicado.

Destacar que a diferencia del sys.version de Python, el valor retornado siempre incluirá el último parche aplicado (siendo '0' por defecto).

platform.release()

Returns the system’s release, e.g. '2.2.0' or 'NT'. An empty string is returned if the value cannot be determined.

platform.system()

Retorna el nombre del sistema/SO, como 'Linux', 'Darwin', 'Java', 'Windows'. Si no se puede determinar el valor, se retorna una cadena vacía.

platform.system_alias(system, release, version)

Retorna la tupla (system, release, version) con los aliases de los nombres comerciales usados por algunos sistemas siendo system el nombre comercial del sistema, release como la versión principal de publicación y version como el número de la versión del sistema. También hace cierta reordenación de la información en algunos casos donde se produjera algún tipo de confusión.

platform.version()

Retorna la versión de la publicación del sistema. Por ejemplo: '#3 n degas'. Una cadena vacía se retorna en el caso de que el valor no pueda ser determinado.

platform.uname()

Interfaz uname relativamente portable. Retorna una namedtuple() con seis atributos: system, node, release, version, machine, and processor.

Destacar que añade un sexto atributo (processor) que no está presente en el resultado de la función os.uname(). Los dos primeros atributos tienen nombres diferentes a los que tiene os.uname(), que los llama sysname y nodename.

Cualquier entrada que no pueda ser determinada se establece como ''.

Distinto en la versión 3.3: Result changed from a tuple to a namedtuple().

Plataforma Java

platform.java_ver(release='', vendor='', vminfo=('', '', ''), osinfo=('', '', ''))

Versión de la interfaz de Jython.

Retorna una tupla (release, vendor, vminfo, osinfo) con vminfo siendo una tupla (vm_name, vm_release, vm_vendor) y osinfo siendo una tupla (os_name, os_version, os_arch). Los valores que no se pueden determinar se establecen por defecto de los parámetros (que todos los valores predeterminados son '').

Plataforma windows

platform.win32_ver(release='', version='', csd='', ptype='')

Get additional version information from the Windows Registry and return a tuple (release, version, csd, ptype) referring to OS release, version number, CSD level (service pack) and OS type (multi/single processor). Values which cannot be determined are set to the defaults given as parameters (which all default to an empty string).

Como sugerencia: ptype es 'Uniprocessor Free' en máquinas NT de procesador único y 'Multiprocessor Free' en máquinas multiprocesador. El “Free” se refiere a que la versión del sistema operativo está libre de código de depuración. También podría indicar “Checked” lo que significa que la versión del sistema operativo utiliza código de depuración, es decir, código que comprueba argumentos, rangos, etc.

platform.win32_edition()

Returns a string representing the current Windows edition, or None if the value cannot be determined. Possible values include but are not limited to 'Enterprise', 'IoTUAP', 'ServerStandard', and 'nanoserver'.

Nuevo en la versión 3.8.

platform.win32_is_iot()

Retorna True si la edición de Windows retornada por win32_edition() se reconoce como una edición IoT.

Nuevo en la versión 3.8.

macOS Platform

platform.mac_ver(release='', versioninfo=('', '', ''), machine='')

Get macOS version information and return it as tuple (release, versioninfo, machine) with versioninfo being a tuple (version, dev_stage, non_release_version).

Cualquier registro que no puede ser determinado se establece como ''. Todas los registros de la tupla son cadenas.

Plataformas Unix

platform.libc_ver(executable=sys.executable, lib='', version='', chunksize=16384)

Intenta determinar la versión libc al que está enlazado el fichero ejecutable (por defecto el intérprete de Python). Retorna una tupla de cadenas (lib, version) que tiene por defecto los parámetros que han sido introducidos en caso de que la búsqueda fallase.

Destacar que esta función tiene un conocimiento íntimo de cómo las diferentes versiones de libc agregan símbolos al ejecutable. Probablemente sólo se puede utilizar para los ejecutables compilados mediante gcc.

El archivo se lee y se analiza en fragmentos de bytes chunksize.