J'ai un script python qui utilise sys.platform.startswith ('linux') pour tester s'il est sur linux ou non, mais je ne peux pas faire la différence entre le processeur x86 / 64 et l'ARM du Raspberry Pi processeur.
La raison pour laquelle j'ai besoin de cela, c'est d'exécuter un script externe compilé pour mac, linux x86 / 64 ou linux ARM pour le raspberry pi.
D'après ce que je peux dire, il n'y a pas vraiment de façon unifiée de dire que vous courez en fait sur un Raspberry Pi. Toute aide serait appréciée.
Réponses:
Vous pouvez utiliser le
os
module de Python pour obtenir ces informations viauname
:Cette fonction devrait fournir une plate-forme et d'autres informations sur la plupart des distributions Linux ou Unix.
Dans la documentation Python:
la source
os.uname()[4][:3] == 'arm'
startswith
pas le casstartsWith
. Merci, ça a aidé.J'ai trouvé que vous pouvez obtenir le modèle et la version Pi à partir de:
/ sys / firmware / devicetree / base / model
Ex: Raspberry Pi 3 Model B Rev 1.2
J'ai un script shell pour rechercher cela et retourner le contenu s'il existe. Un appel du système d'exploitation pour lire le fichier s'il existe devrait vous redresser. La prémisse est, si elle n'existe pas, ce n'est certainement pas un RPi. Si c'est le cas, inspectez le contenu pour en être sûr.
la source
C'est plus un problème avec l'avènement du Pi 2 (qui n'est pas simple à distinguer du Beaglebone Black). Le niveau de détail le plus élevé se trouve dans / proc / cpuinfo sur les systèmes basés sur Linux (la ligne «Matériel»). Voici un exemple d'analyse de cela, à partir du code GPIO Adafruit:
https://github.com/adafruit/Adafruit_Python_GPIO/blob/master/Adafruit_GPIO/Platform.py
la source
Les meilleures informations d'identification de système largement applicables que j'ai trouvées concernent:
Cela semble donner la même sortie que la commande shell
uname -a
. Dans la plupart des cas, la sortie renvoyée est essentiellement la même (une chaîne au lieu d'un 5-tuple) que celle deos.uname()
.Ceux que j'ai testés et trouvé des sorties équivalentes sont OSX 10.9.5, Ubuntu 14.04 et Raspbian (??) Wheezy. Sur un Synology NAS, cependant, j'obtiens plus d'informations de la
platform._syscmd_uname('-a')
version:En voyant «synology» dans la sortie, il l'identifie comme un environnement où les choses se comportent de façon inattendue.
la source
Meilleure façon de procéder ( extrait de code Python ):
la source
Sur PI 3
Car:
la source