GNU/Linux >> Znalost Linux >  >> Linux

Který příkaz použít pro kontrolu, zda je python 64bitový nebo 32bitový

Nejprve otevřete cmd a zadejte

$ python

Poté zadejte následující dva řádky

>>> import platform

>>> platform.architecture()

Do konzole Linux zadejte:

  1. 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
  1. 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

Linux
  1. Jak používat Su Command v Linuxu

  2. Výstup kterého příkazu použitého pro vstup na CD?

  3. Linux – jakou aplikaci použít pro kalendář?

  1. Který příkaz terminálu Linuxu používáte nejčastěji?

  2. Jak používat příkaz „najít“ k hledání více názvů souborů (přípon) v systému Linux

  3. Pro jeden příkaz použijte jinou verzi PHP spustitelný CLI

  1. Jak používat příkaz SFTP pro bezpečný přenos souborů

  2. Pro jakou pracovní zátěž jste poprvé použili linuxové kontejnery?

  3. Jak používat `který` u aliasovaného příkazu?