Dois-je utiliser Python 32 bits ou Python 64 bits

143

J'ai une installation win7 64 bits. Dois-je utiliser Python 64 bits? Quelles sont les différences entre les versions Python 32 bits et 64 bits de toute façon? Différents packages Python (tels que south, django, mysqldb, etc.) ne prennent-ils en charge que 32 bits / 64 bits?

Jonathan
la source

Réponses:

91

La version 64 bits permettra à un seul processus d'utiliser plus de RAM que 32 bits, mais vous pouvez constater que l'encombrement mémoire double en fonction de ce que vous stockez dans la RAM (les nombres entiers en particulier).

Par exemple, si votre application nécessite> 2 Go de RAM, vous passez donc de 32 bits à 64 bits, vous constaterez peut-être que votre application nécessite maintenant> 4 Go de RAM.

Vérifiez si tous vos modules tiers sont disponibles en 64 bits, sinon il peut être plus facile de s'en tenir au 32 bits entre-temps

John La Rooy
la source
13
Afaik, il n'y a pas de binaires 64 bits pour MysqlDB - c'est la raison pour laquelle je m'en tiens à Python 32 bits.
Jochen Ritzel
12
Les modules tiers doivent-ils vraiment prendre en charge explicitement 64 bits?
Jonathan
8
J'utilise Python 2.7 64 bits depuis plusieurs mois (cinq ans après cet article) et même si je dirais que cela en vaut vraiment la peine - avoir accès à toute cette RAM est plutôt bien si vous ne voulez pas perdre autant de temps gérer vos données - il existe encore plusieurs bibliothèques qui sont soit légèrement ennuyeuses pour obtenir des versions 64 bits, soit dans de nombreux cas presque impossibles à utiliser (les DLL 32 bits sont un exemple de ressource que je n'ai pas encore réussi à exploiter sans chargement d'une version 32 bits de Python)
Darren Ringer
12
Il y a aussi l'inverse: tensorflow n'est disponible que pour python 64 bits sous Windows, sauf si vous souhaitez le construire.
TrakJohnson
28

D'après mon expérience, l'utilisation de la version 32 bits est plus simple. À moins que vous ne travailliez sur des applications qui utilisent beaucoup la mémoire (principalement de l'informatique scientifique, qui utilise plus de 2 Go de mémoire), vous êtes mieux avec des versions 32 bits car:

  1. Vous utilisez généralement moins de mémoire.
  2. Vous rencontrez moins de problèmes avec COM (puisque vous êtes sous Windows).
  3. Si vous devez charger des DLL, elles sont probablement également 32 bits. Python 64 bits ne peut pas charger des bibliothèques 32 bits sans quelques hacks lourds exécutant un autre Python, cette fois en 32 bits, et utilisant IPC.
  4. Si vous devez charger des DLL que vous compilez vous-même, vous devrez les compiler en 64 bits, ce qui est généralement plus difficile à faire (surtout si vous utilisez MinGW sous Windows).
  5. Si jamais vous utilisez PyInstaller ou py2exe, ces outils généreront des exécutables avec le même bitness que votre interpréteur Python.
Ronan Paixão
la source
6

Vous n'avez pas besoin d'utiliser 64 bits car Windows émulera des programmes 32 bits en utilisant wow64. Mais utiliser la version native (64 bits) vous donnera plus de performances.

codymanix
la source
4

Utilisez la version 64 bits uniquement si vous devez travailler avec de grandes quantités de données, dans ce scénario, les 64 bits fonctionnent mieux avec l'inconvénient dit John La Rooy; sinon, tenez-vous-en aux 32 bits.

Ariel Jiménez
la source
2

J'ai eu du mal à exécuter l'application python (exécutant de grandes images de données) en 32 - j'ai reçu un message MemoryError, tandis que sur 64, cela fonctionnait bien.

AlKo
la source
0

Les packages d'apprentissage automatique tels que tensorflow 2.x sont conçus pour fonctionner uniquement sur Python 64 bits car ils nécessitent beaucoup de mémoire.

H_J
la source