GNU/Linux >> Linux Esercitazione >  >> Linux

Quale comando usare per verificare se Python è a 64 o 32 bit

Innanzitutto, apri cmd e digita

$ python

Quindi, digita le seguenti due righe

>>> import platform

>>> platform.architecture()

Digita console Linux:

  1. Nel caso in cui desideri verificare se un'applicazione ha un'architettura a 64 o 32 bit utilizzando il suo comando per l'esecuzione:
type -p <command_to_run_application> | xargs readlink -f | xargs file -b | sed 's/, /\n/g' | sed -n 2p
  1. Nel caso in cui desideri verificare se un'applicazione ha un'architettura a 64 o 32 bit utilizzando il percorso completo dell'applicazione:
file -b <full_path_to_an_application> | sed 's/, /\n/g' | sed -n 2p

Ad esempio, per Python 3 i comandi corrispondenti possono essere:

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

Possibile output:

x86-64

o

Intel 80386

o

ARM

o altro.

Se l'output è "Intel 80386", allora l'applicazione ha un'architettura a 32 bit.

Se l'output è "x86-64", l'applicazione ha un'architettura a 64 bit.


import platform
platform.architecture()[0]
#'32bit'

Per Python 2.6 e versioni successive, puoi usare sys.maxsize come documentato qui:

import sys
is_64bits = sys.maxsize > 2**32

AGGIORNAMENTO:noto che non ho davvero risposto alla domanda posta. Sebbene il test precedente ti dica con precisione se l'interprete è in esecuzione in un'architettura a 32 o 64 bit, non risponde e non può rispondere alla domanda su quale sia l'insieme completo di architetture per cui è stato creato questo interprete e potrebbe essere eseguito. Come è stato notato nella domanda, questo è importante, ad esempio, con gli eseguibili universali di Mac OS X in cui un file eseguibile può contenere codice per più architetture. Un modo per rispondere a questa domanda è usare il sistema operativo file comando. Sulla maggior parte dei sistemi riporterà le architetture supportate di un file eseguibile. Ecco come farlo in una riga da una riga di comando della shell sulla maggior parte dei sistemi:

file -L $(python -c 'import sys; print(sys.executable)')

Utilizzando il sistema predefinito Python su OS X 10.6, l'output è:

/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

Su un sistema 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

A proposito, ecco un esempio del perché platform non è affidabile per questo scopo. Ancora usando il sistema Python su 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. Quale comando del terminale Linux usi di più?

  2. Come utilizzare il comando SFTP per il trasferimento di file sicuro

  3. Output di quale comando utilizzato per l'input su Cd?

  4. Quale percorso usa `sudo ` per cercare “?

  5. Linux:quale applicazione utilizzare per un calendario?

Come utilizzare il comando SCP per il trasferimento di file

Linux quale comando

Linux which e whoami Command Tutorial per principianti (con esempi)

15 modi per utilizzare il comando Linux Watch per le attività quotidiane

Spiegazione dei comandi Apt vs Apt-get:quale usare?

Come utilizzare il comando which in Linux