¿Debo usar Python 32bit o Python 64bit

143

Tengo una instalación win7 de 64 bits. ¿Debo usar Python 64bit? ¿Cuáles son las diferencias entre las versiones de Python de 32 bits y 64 bits de todos modos? ¿Los diferentes paquetes de Python (como south, django, mysqldb, etc.) solo admiten 32 bits / 64 bits?

Jonathan
fuente
2
Relacionados stackoverflow.com/q/4567856/460775
EMBarbosa

Respuestas:

91

La versión de 64 bits permitirá que un solo proceso use más RAM que 32 bits, sin embargo, es posible que la huella de la memoria se duplique dependiendo de lo que esté almacenando en la RAM (en particular, los enteros).

Por ejemplo, si su aplicación requiere> 2 GB de RAM, por lo que cambia de 32 bits a 64 bits, es posible que su aplicación ahora requiera> 4 GB de RAM.

Compruebe si todos sus módulos de terceros están disponibles en 64 bits, de lo contrario, puede ser más fácil quedarse con 32 bits mientras tanto

John La Rooy
fuente
13
Afaik, no hay binarios de 64 bits para MysqlDB, esa es la razón por la que me quedo con Python de 32 bits.
Jochen Ritzel
12
¿Los módulos de terceros realmente necesitan soportar explícitamente 64 bits?
Jonathan
8
He estado usando Python 2.7 de 64 bits durante los últimos meses (cinco años después de esta publicación) y, aunque diría que definitivamente vale la pena, tener acceso a toda esa RAM es bastante bueno si no quieres perder tanto tiempo administrar sus datos: todavía hay varias bibliotecas que son un poco molestas para obtener versiones de 64 bits o, en muchos casos, casi imposibles de usar (las DLL de 32 bits son un ejemplo de un recurso que aún no he logrado aprovechar sin cargando una versión de Python de 32 bits)
Darren Ringer
12
También existe lo contrario: tensorflow solo está disponible para python de 64 bits en Windows, excepto si desea compilarlo.
TrakJohnson
28

En mi experiencia, usar la versión de 32 bits es más libre de problemas. A menos que esté trabajando en aplicaciones que hacen un uso intensivo de la memoria (principalmente computación científica, que usa más de 2 GB de memoria), es mejor que tenga versiones de 32 bits porque:

  1. Generalmente usas menos memoria.
  2. Tiene menos problemas con COM (ya que está en Windows).
  3. Si tiene que cargar archivos DLL, lo más probable es que también sean de 32 bits. Python de 64 bits no puede cargar bibliotecas de 32 bits sin algunos hacks pesados ​​ejecutando otro Python, esta vez en 32 bits, y usando IPC.
  4. Si tiene que cargar archivos DLL que compila usted mismo, deberá compilarlos a 64 bits, lo que generalmente es más difícil de hacer (especialmente si usa MinGW en Windows).
  5. Si alguna vez usa PyInstaller o py2exe, esas herramientas generarán ejecutables con el mismo bitness de su intérprete de Python.
Ronan Paixão
fuente
6

No necesita usar 64 bits ya que Windows emulará programas de 32 bits con wow64. Pero usar la versión nativa (64 bits) te dará más rendimiento.

codymanix
fuente
4

Use la versión de 64 bits solo si tiene que trabajar con grandes cantidades de datos, en ese escenario, los 64 bits funcionan mejor con el inconveniente que dijo John La Rooy; si no, quédate con los 32 bits.

Ariel Jiménez
fuente
2

Tuve problemas para ejecutar la aplicación python (ejecutar grandes marcos de datos) en 32; recibí el mensaje MemoryError, mientras que en 64 funcionó bien.

AlKo
fuente
0

Los paquetes de aprendizaje automático como tensorflow 2.x están diseñados para funcionar solo en Python de 64 bits, ya que requieren mucha memoria.

H_J
fuente