Double Possible:
Comment puis-je déterminer si mon python shell en cours d'exécution dans 32bit ou 64bit mode?Je suis en train de faire un certain travail avec le registre de windows. Selon que vous êtes en cours d'exécution python 32 bits ou 64 bits, la valeur de la clé sera différent. Comment puis-je détecter si Python est en cours d'exécution comme une application 64 bits, par opposition à une application 32 bits?
Note: je ne suis pas intéressé à la détection de 32-bit/64-bit Windows - le Python plate-forme.
Réponses
Trop de publicités? import platform
platform.architecture()
À partir de la documentation Python :
Interroge l'exécutable donné (par défaut au binaire de l’interprète Python) pour diverses informations d'architecture.
Retourne un tuple (bits, lien) qui contenir des informations sur le bit architecture et format de liaison utilisé pour l'exécutable. Les deux valeurs sont retournés sous forme de chaînes.
Alors que cela peut fonctionner sur certaines plates-formes, sachez qu' platform.architecture
n'est pas toujours un moyen fiable de déterminer si python est en cours d'exécution en 32-bit ou 64-bits. En particulier, sur OS X multi-architecture construit comme la Pomme-valeur par défaut fourni avec OS X 10.6, le même fichier exécutable peut être capable de fonctionner en mode, comme dans l'exemple ci-dessous illustre. La plus sûre de la plate-forme multi-approche consiste à tester l' sys.maxint
sur Python 2.x ou sys.maxsize
sur Python 3.x.
$ /usr/bin/python
Python 2.6.1 (r261:67515, Jul 7 2009, 23:51:51)
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import platform, sys
>>> platform.architecture(), sys.maxint
(('64bit', ''), 9223372036854775807)
>>> ^D
$ export VERSIONER_PYTHON_PREFER_32_BIT=yes
$ /usr/bin/python
Python 2.6.1 (r261:67515, Jul 7 2009, 23:51:51)
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import platform, sys
>>> platform.architecture(), sys.maxint
(('64bit', ''), 2147483647)
Vous pouvez essayer platform.architecture