GNU/Linux >> Tutoriels Linux >  >> Linux

Quelle commande utiliser pour vérifier si python est 64 bits ou 32 bits

Tout d'abord, ouvrez cmd et tapez

$ python

Ensuite, tapez les deux lignes suivantes

>>> import platform

>>> platform.architecture()

Tapez dans la console Linux :

  1. Si vous souhaitez vérifier si une application a une architecture 64 bits ou 32 bits en utilisant sa commande d'exécution :
type -p <command_to_run_application> | xargs readlink -f | xargs file -b | sed 's/, /\n/g' | sed -n 2p
  1. Si vous souhaitez vérifier si une application a une architecture 64 bits ou 32 bits en utilisant le chemin d'accès complet à l'application :
file -b <full_path_to_an_application> | sed 's/, /\n/g' | sed -n 2p

Par exemple, pour Python 3, les commandes correspondantes peuvent être :

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

Sortie possible :

x86-64

ou

Intel 80386

ou

ARM

ou autre.

Si la sortie est "Intel 80386", l'application a une architecture 32 bits.

Si la sortie est "x86-64", l'application a une architecture 64 bits.


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

Pour Python 2.6 et supérieur, vous pouvez utiliser sys.maxsize comme documenté ici :

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

MISE À JOUR :Je remarque que je n'ai pas vraiment répondu à la question posée. Bien que le test ci-dessus vous indique avec précision si l'interpréteur s'exécute dans une architecture 32 bits ou 64 bits, il ne répond pas et ne peut pas répondre à la question de savoir quel est l'ensemble complet d'architectures pour lesquelles cet interpréteur a été conçu. et pourrait s'exécuter. Comme indiqué dans la question, cela est important par exemple avec les exécutables universels Mac OS X où un fichier exécutable peut contenir du code pour plusieurs architectures. Une façon de répondre à cette question est d'utiliser le système d'exploitation file commande. Sur la plupart des systèmes, il signalera les architectures prises en charge d'un fichier exécutable. Voici comment le faire en une seule ligne à partir d'une ligne de commande shell sur la plupart des systèmes :

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

En utilisant le système par défaut Python sur OS X 10.6, la sortie est :

/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

Sur un système 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, voici un exemple de pourquoi platform n'est pas fiable à cet effet. Toujours en utilisant le système Python sur 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. Quelle commande de terminal Linux utilisez-vous le plus ?

  2. Comment utiliser la commande Su sous Linux

  3. Comment utiliser la commande SFTP pour le transfert de fichiers sécurisé

  4. Pour quelle charge de travail avez-vous d'abord utilisé des conteneurs Linux ?

  5. Comment utiliser `which` sur une commande alias ?

Comment utiliser la commande SCP pour le transfert de fichiers

Linux Quelle commande

Tutoriel de commande Linux which et whoami pour les débutants (avec exemples)

15 façons d'utiliser la commande Linux Watch pour les activités quotidiennes

Explication des commandes Apt vs Apt-get :laquelle utiliser ?

Comment utiliser la commande which sous Linux