Pour autant que je sachez qu'il n'y a pas d'autre moyen vraiment fiable que d'examiner les fichiers exécutables eux-mêmes pour voir quelles architectures ont été combinées, c'est-à-dire ce que fait file
. Alors que le distutils.util.get_platform()
noté ailleurs est probablement le plus proche, il est basé sur les informations de configuration au moment de la construction Python et les critères utilisés ont changé entre les versions et même entre les distributions de la même version.
Par exemple, si vous avez construit un Python 2.6 sur OS X 10.6 avec l'option universelle 4 voies (ppc
, ppc64
, i386
, x86_64
), get_platform()
devrait signaler macosx-10.6-universal
. Toutefois, le Python 2.6 fourni par Apple dans OS X 10.6 signale la même chaîne même s'il s'agit seulement d'une compilation à trois voies (no ppc64
). EDIT: Ce n'est peut-être pas le meilleur exemple car, à bien y penser, vous ne pourriez probablement pas construire une variante ppc64
avec le SDK 10.6. Cependant, le point maintient toujours que la chaîne de la plateforme dépend trop du contexte pour être totalement fiable. Il peut être assez fiable pour certains besoins, cependant. Sinon, appeler à file
ou otool
etc. est probablement la meilleure façon de faire.
Quel est le problème avec l'utilisation des commandes système comme fichier ou otool? Avant de demander à quelqu'un de trouver comment faire cela, il serait poli d'expliquer pourquoi vous ne pouvez pas le faire en toute simplicité, ne serait-ce que pour nous convaincre que vous ne pouvez vraiment pas le faire facilement. – user57368
@ user57368: tant mieux si cette information est intégrée dans la librairie Python, sinon je devrai lancer un nouveau processus ("lipo" ou "fichier") qui ajouterait au démarrage de mon programme ... bien que ne semble pas être un retard significatif. –
duplicata possible de [Comment puis-je déterminer si mon shell python s'exécute en mode 32 bits ou 64 bits?] (Http://stackoverflow.com/questions/1405913/how-do-i-determine-if-my-python-shell -is-exécution en mode 32 bits ou 64 bits) – outis