Stai girando Python 64-bit o 32?

Come verificare se la versione Python che stai usando è a 32 o 64 bit.

Quale versione

Sappiamo tutti come controllare la versione di Python in uso. Scriviamo python –version dalla CLI e, con lievi differenze dovute al sistema operativo, vedremo un output simile a questo:

C:\Users\M>python --version

Python 3.7.7

C:\Users\M>

Il problema della keyword version è che non mostra il dettaglio della release a 32 o 64-bit. Su stackoverflow il suggerimento è di usare platform.architecture(), ma sulla mia macchina windows non funziona. Suggerisco quindi un’alternativa valida per tutti, più una generica valida solo per windows.

Python 32-bit or 64-bit

La soluzione che suggerisco è di usare struct. calcsize():

# It returns "32" for 32-bit and "64" for 64-bit
>>> import struct
>>> print(struct.calcsize("P")*8)
32

C’è anche un modo ancora più semplice, che ho però testato solo su windows. Basta scrivere “Python” nella search box delle app e appare accanto alla versione, anche il dettaglio dei 32/64-bit.

Ovviamente saremo sempre più sicuri utilizzando il primo approccio, specialmente quando abbiamo installazioni multiple e utilizziamo ambienti virtuali come venv o virtualenv.