platform — Acesso aos dados de identificação da plataforma subjacente

Código-fonte: Lib/platform.py


Nota

Plataformas específicas listadas em ordem alfabética, com Linux incluído na seção Unix.

Multiplataforma

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

Consulta o executável fornecido (o padrão é o binário do interpretador Python) para obter várias informações de arquitetura.

Retorna uma tupla (bits, linkage) que contém informações sobre a arquitetura de bits e o formato de linkage usado para o executável. Ambos os valores são retornados como strings.

Valores que não podem ser determinados são retornados como fornecidos pelas predefinições de parâmetros. Se bits for fornecido como '', o sizeof(pointer) (ou sizeof(long) na versão Python < 1.5.2) é usado como indicador para o tamanho de ponteiro suportado.

A função depende do comando file do sistema para fazer o trabalho real. Isso está disponível na maioria, se não em todas as plataformas Unix e algumas plataformas não Unix e somente se o executável apontar para o interpretador Python. Padrões razoáveis ​​são usados ​​quando as necessidades acima não são atendidas.

Nota

No macOS (e talvez em outras plataformas), arquivos executáveis ​​podem ser arquivos universais contendo diversas arquiteturas.

Para obter a “característica de 64 bits” do interpretador atual, é mais confiável consultar o atributo sys.maxsize:

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

Retorna o tipo de máquina, por exemplo, 'AMD64'. Uma string vazia é retornada se o valor não puder ser determinado.

platform.node()

Retorna o nome de rede do computador (pode não ser totalmente qualificado!). Uma string vazia é retornada se o valor não puder ser determinado.

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

Retorna uma única string identificando a plataforma subjacente com o máximo de informações úteis possível.

A saída é pretendida para ser legível por humanos em vez de analisável por máquinas. Pode parecer diferente em diferentes plataformas e isso é intencional.

Se aliased for true, a função usará apelidos para várias plataformas que relatam nomes de sistemas que diferem de seus nomes comuns, por exemplo, SunOS será relatado como Solaris. A função system_alias() é usada para implementar isso.

Definir terse como true faz com que a função retorne apenas o mínimo absoluto de informações necessárias para identificar a plataforma.

Alterado na versão 3.8: No macOS, a função agora usa mac_ver(), se retornar uma string de versão não vazia, para obter a versão do macOS em vez da versão do darwin.

platform.processor()

Retorna o nome (real) do processador, por exemplo 'amdk6'.

Uma string vazia é retornada se o valor não puder ser determinado. Note que muitas plataformas não fornecem essas informações ou simplesmente retornam o mesmo valor que para machine(). O NetBSD faz isso.

platform.python_build()

Retorna uma tupla (buildno, builddate) informando o número e a data da construção do Python como strings.

platform.python_compiler()

Retorna uma string identificando o compilador usado para compilar Python.

platform.python_branch()

Retorna uma string identificando a branch SCM da implementação do Python.

platform.python_implementation()

Retorna uma string identificando a implementação do Python. Os valores de retorno possíveis são: ‘CPython’, ‘IronPython’, ‘Jython’, ‘PyPy’.

platform.python_revision()

Retorna uma string que identifica a revisão do SCM da implementação Python.

platform.python_version()

Retorna a versão do Python como string 'major.minor.patchlevel'.

Observe que, diferentemente do sys.version do Python, o valor retornado sempre incluirá o patchlevel (o padrão é 0).

platform.python_version_tuple()

Retorna a versão do Python como tupla (major, minor, patchlevel) de strings.

Observe que, diferentemente do sys.version do Python, o valor retornado sempre incluirá o patchlevel (o padrão é '0').

platform.release()

Retorna a versão do sistema, por exemplo, '2.2.0' ou 'NT'. Uma string vazia é retornada se o valor não puder ser determinado.

platform.system()

Retorna o nome do sistema/SO, como 'Linux', 'Darwin', 'Java', 'Windows'. Uma string vazia é retornada se o valor não puder ser determinado.

No iOS e Android, isso retorna o nome do SO voltado para o usuário (por exemplo, 'iOS, 'iPadOS' ou 'Android'). Para obter o nome do kernel ('Darwin' ou 'Linux'), use os.uname().

platform.system_alias(system, release, version)

Retorna (sistema, release, versão) com apelido para nomes comuns de marketing usados ​​para alguns sistemas. Ele também faz alguma reordenação das informações em alguns casos em que, de outra forma, causaria confusão.

platform.version()

Retorna a versão de lançamento do sistema, por exemplo, '#3 on degas'. Uma string vazia é retornada se o valor não puder ser determinado.

No iOS e Android, esta é a versão do SO voltada para o usuário. Para obter a versão do kernel Darwin ou Linux, use os.uname().

platform.uname()

Interface para uname razoavelmente portátil. Retorna um namedtuple() contendo seis atributos: system, node, release, version, machine e processor.

processor é resolvido tardiamente, sob demanda.

Observação: os dois primeiros nomes de atributos diferem dos nomes apresentados por os.uname(), onde são chamados sysname e nodename.

As entradas que não podem ser determinadas são definidas como ''.

Alterado na versão 3.3: O resultado mudou de uma tupla para namedtuple().

Alterado na versão 3.9: processor é resolvido tarde em vez de imediatamente.

Plataforma Java

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

Interface de versão para Jython.

Retorna uma tupla (release, vendor, vminfo, osinfo) com vminfo sendo uma tupla (vm_name, vm_release, vm_vendor) e osinfo sendo uma tupla (os_name, os_version, os_arch). Valores que não podem ser determinados são definidos para os padrões fornecidos como parâmetros (que são todos padrão para '').

Deprecated since version 3.13, will be removed in version 3.15: Ele não foi testado em grande parte, tinha uma API confusa e só era útil para suporte ao Jython.

Plataforma Windows

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

Obtém informações adicionais sobre a versão do Registro do Windows e retorna uma tupla (release, version, csd, ptype) referente à versão do SO, número da versão, nível do CSD (service pack) e tipo de sistema operacional (processador múltiplo/único). Os valores que não podem ser determinados são definidos para os padrões fornecidos como parâmetros (que são todos padrão para uma string vazia).

Como dica: ptype é 'Uniprocessor Free' em máquinas NT de processador único e 'Multiprocessor Free' em máquinas de multiprocessador. O 'Free' se refere à versão do sistema operacional que está livre de código de depuração. Ele também pode declarar 'Checked', o que significa que a versão do sistema operacional usa código de depuração, ou seja, código que verifica argumentos, intervalos, etc.

platform.win32_edition()

Retorna uma string representando a edição atual do Windows, ou None se o valor não puder ser determinado. Os valores possíveis incluem, mas não estão limitados a 'Enterprise', 'IoTUAP', 'ServerStandard' e 'nanoserver'.

Adicionado na versão 3.8.

platform.win32_is_iot()

Retorna True se a edição do Windows retornada por win32_edition() for reconhecida como uma edição IoT.

Adicionado na versão 3.8.

Plataforma macOS

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

Obtém informações sobre a versão do macOS e retorna-as como tupla (release, versioninfo, machine), sendo versioninfo uma tupla (version, dev_stage, non_release_version).

Entradas que não podem ser determinadas são definidas como ''. Todas as entradas de tupla são strings.

Plataforma iOS

platform.ios_ver(system='', release='', model='', is_simulator=False)

Obtém informações sobre a versão do iOS e retorna-as como namedtuple() com os seguintes atributos:

  • system é o nome do sistema operacional; 'iOS' ou 'iPadOS'.

  • release é o número da versão do iOS como uma string (por exemplo, '17.2').

  • model é o identificador do modelo do dispositivo; será uma string como 'iPhone13,2' para um dispositivo físico ou 'iPhone' em um simulador.

  • is_simulator é um booleano que descreve se o aplicativo está sendo executado em um simulador ou em um dispositivo físico.

As entradas que não podem ser determinadas são definidas para os padrões fornecidos como parâmetros.

Plataformas Unix

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

Tenta determinar a versão libc contra a qual o executável do arquivo (padrão para o interpretador Python) está vinculado. Retorna uma tupla de strings (lib, version) que tem como padrão os parâmetros fornecidos caso a pesquisa falhe.

Observe que esta função tem conhecimento profundo de como diferentes versões da libc adicionam símbolos ao executável e provavelmente só pode ser usada para executáveis ​​compilados usando gcc.

O arquivo é lido e escaneado em blocos de chunksize bytes.

Plataformas Linux

platform.freedesktop_os_release()

Obtém a identificação do sistema operacional do arquivo os-release e retorna-a como um dict. O arquivo os-release é um padrão freedesktop.org e está disponível na maioria das distribuições Linux. Uma exceção notável é o Android e as distribuições baseadas em Android.

Levanta OSError ou subclasse quando nem /etc/os-release nem /usr/lib/os-release podem ser lidos.

Em caso de sucesso, a função retorna um dicionário onde chaves e valores são strings. Valores têm seus caracteres especiais como " e $ sem aspas. Os campos NAME, ID e PRETTY_NAME são sempre definidos de acordo com o padrão. Todos os outros campos são opcionais. Os fornecedores podem incluir campos adicionais.

Note que campos como NAME, VERSION e VARIANT são strings adequadas para apresentação aos usuários. Os programas devem usar campos como ID, ID_LIKE, VERSION_ID ou VARIANT_ID para identificar distribuições Linux.

Exemplo:

def get_like_distro():
    info = platform.freedesktop_os_release()
    ids = [info["ID"]]
    if "ID_LIKE" in info:
        # ids são separados por espaço e ordenado por precedência
        ids.extend(info["ID_LIKE"].split())
    return ids

Adicionado na versão 3.10.

Plataforma Android

platform.android_ver(release='', api_level=0, manufacturer='', model='', device='', is_emulator=False)

Obtém informações do dispositivo Android. Retorna um namedtuple() com os seguintes atributos. Valores que não podem ser determinados são definidos para os padrões fornecidos como parâmetros.

  • release - Versão do Android, como uma string (por exemplo, "14").

  • api_level - Nível de API do dispositivo em execução, como um inteiro (por exemplo, 34 para Android 14). Para obter o nível de API contra o qual o Python foi criado, consulte sys.getandroidapilevel().

  • manufacturer - Nome do fabricante.

  • model - Nome do modelo – normalmente o nome de marketing ou o número do modelo.

  • device - Nome do dispositivo – normalmente o número do modelo ou um codinome.

  • is_emulator - True se o dispositivo for um emulador; False se for um dispositivo físico.

O Google mantém uma lista de nomes de modelos e dispositivos conhecidos.

Adicionado na versão 3.13.