Eu tenho um script python que usa sys.platform.startswith ('linux') para testar se está no linux ou não, mas não sei dizer a diferença entre o processador x86 / 64 e o ARM do raspberry pi processador.
A razão pela qual eu preciso disso é executar um script externo compilado para mac, linux x86 / 64 ou linux ARM para o raspberry pi.
Pelo que posso dizer, não há realmente uma maneira unificada de dizer que você está de fato rodando com um pi de framboesa. Qualquer ajuda seria apreciada.
Respostas:
Você pode usar o
os
módulo do Python para obter essas informações através deuname
:Esta função deve fornecer plataforma e outras informações na maioria das distribuições do tipo Linux ou Unix.
Na documentação do Python:
fonte
os.uname()[4][:3] == 'arm'
startswith
, nãostartsWith
. Obrigado, ajudou.Eu descobri que você pode obter o modelo e versão do Pi em:
/ sys / firmware / devicetree / base / modelo
Ex: Raspberry Pi 3 Modelo B Rev 1.2
Eu tenho um script de shell para procurar por isso e retornar o conteúdo, se existir. Uma chamada do SO para ler o arquivo, se existir, deve ser o correto. A premissa é que, se não existir, definitivamente não é um RPi. Se houver, inspecione o conteúdo para ter certeza.
fonte
Isso é mais um problema com o advento do Pi 2 (que não é simples de distinguir do Beaglebone Black). O nível mais alto de detalhes é encontrado em / proc / cpuinfo em sistemas baseados em Linux (a linha 'Hardware'). Aqui está um exemplo de análise que, a partir do código Adafruit GPIO:
https://github.com/adafruit/Adafruit_Python_GPIO/blob/master/Adafruit_GPIO/Platform.py
fonte
As melhores informações de identificação de sistemas amplamente aplicáveis que encontrei foram:
Isso parece dar a mesma saída que o comando shell
uname -a
. Na maioria dos casos, a saída retornada é essencialmente a mesma (uma sequência em vez de uma tupla de 5) que a deos.uname()
.Os que eu testei e encontrei saídas equivalentes são OSX 10.9.5, Ubuntu 14.04 e Raspbian (??) Wheezy. Em um NAS Synology, no entanto, recebo mais informações da
platform._syscmd_uname('-a')
versão:Ver "sinologia" na saída identifica-o como um ambiente em que as coisas se comportam inesperadamente.
fonte
No PI 3
Porque:
fonte
Melhor maneira de fazer isso ( trecho de código Python ):
fonte