Nejprve otevřete cmd a zadejte
$ python
Poté zadejte následující dva řádky
>>> import platform
>>> platform.architecture()
Do konzole Linux zadejte:
- V případě, že chcete zkontrolovat, zda má aplikace 64bitovou nebo 32bitovou architekturu pomocí jejího příkazu pro spuštění:
type -p <command_to_run_application> | xargs readlink -f | xargs file -b | sed 's/, /\n/g' | sed -n 2p
- V případě, že chcete zkontrolovat, zda má aplikace 64bitovou nebo 32bitovou architekturu pomocí úplné cesty k aplikaci:
file -b <full_path_to_an_application> | sed 's/, /\n/g' | sed -n 2p
Například pro Python 3 mohou být odpovídající příkazy:
type -p python3 | xargs readlink -f | xargs file -b | sed 's/, /\n/g' | sed -n 2p
file -b /usr/bin/python3.5 | sed 's/, /\n/g' | sed -n 2p
Možný výstup:
x86-64
nebo
Intel 80386
nebo
ARM
nebo jiné.
Pokud je výstup "Intel 80386", má aplikace 32bitovou architekturu.
Pokud je výstup "x86-64", má aplikace 64bitovou architekturu.
import platform
platform.architecture()[0]
#'32bit'
Pro Python 2.6 a vyšší můžete použít sys.maxsize
jak je zdokumentováno zde:
import sys
is_64bits = sys.maxsize > 2**32
AKTUALIZACE:Všiml jsem si, že jsem skutečně neodpověděl na položenou otázku. Zatímco výše uvedený test vám přesně řekne, zda interpret běží v 32bitové nebo 64bitové architektuře, ne a ani nemůže odpovědět na otázku, jaká je kompletní sada architektur, pro kterou byl tento interpret postaven. a mohl běžet. Jak bylo uvedeno v otázce, je to důležité například u univerzálních spustitelných souborů Mac OS X, kde jeden spustitelný soubor může obsahovat kód pro více architektur. Jedním ze způsobů, jak odpovědět na tuto otázku, je použít operační systém file
příkaz. Na většině systémů bude hlásit podporované architektury spustitelného souboru. Zde je návod, jak to udělat na jednom řádku z příkazového řádku shellu na většině systémů:
file -L $(python -c 'import sys; print(sys.executable)')
Při použití výchozího systémového Pythonu na OS X 10.6 je výstup:
/usr/bin/python: Mach-O universal binary with 3 architectures
/usr/bin/python (for architecture x86_64): Mach-O 64-bit executable x86_64
/usr/bin/python (for architecture i386): Mach-O executable i386
/usr/bin/python (for architecture ppc7400): Mach-O executable ppc
Na jednom systému Linux:
/usr/bin/python: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.26, stripped
BTW, zde je příklad proč platform
není pro tento účel spolehlivý. Opět pomocí systémového Pythonu na OS X 10.6:
$ arch -x86_64 /usr/bin/python2.6 -c 'import sys,platform; print platform.architecture()[0], sys.maxsize > 2**32'
64bit True
$ arch -i386 /usr/bin/python2.6 -c 'import sys,platform; print platform.architecture()[0], sys.maxsize > 2**32'
64bit False