Devo usar Python 32bit ou Python 64bit

143

Eu tenho uma instalação win7 de 64 bits. Devo usar o Python 64bit? Quais são as diferenças entre as versões Python de 32 bits e 64 bits? Pacotes Python diferentes (como south, django, mysqldb etc) suportam apenas 32 bits / 64 bits?

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

Respostas:

91

A versão de 64 bits permitirá que um único processo use mais RAM do que 32 bits; no entanto, você pode achar que o espaço ocupado pela memória dobra dependendo do que você está armazenando na RAM (números inteiros em particular).

Por exemplo, se seu aplicativo exigir> 2 GB de RAM, para que você mude de 32 bits para 64 bits, poderá descobrir que seu aplicativo agora está exigindo> 4 GB de RAM.

Verifique se todos os seus módulos de terceiros estão disponíveis em 64 bits; caso contrário, pode ser mais fácil manter 32 bits enquanto isso.

John La Rooy
fonte
13
Afaik, não há binários de 64 bits para o MysqlDB - essa é a razão pela qual eu uso o Python de 32 bits.
Jochen Ritzel
12
Os módulos de terceiros precisam realmente suportar explicitamente 64 bits?
27610 Jonathan
8
Eu uso Python 2.7 de 64 bits nos últimos meses (cinco anos após este post) e, embora eu diria que definitivamente vale a pena - ter acesso a toda essa memória RAM é muito bom se você não quer perder tanto tempo gerenciamento de dados - ainda existem várias bibliotecas que são levemente irritantes para obter versões de 64 bits ou, em muitos casos, quase impossíveis de usar (DLLs de 32 bits são um exemplo de recurso que ainda não consegui utilizar sem carregando uma versão de 32 bits do Python)
Darren Ringer
12
Há também o oposto: o tensorflow está disponível apenas para python de 64 bits no Windows, exceto se você deseja construí-lo.
TrakJohnson
28

Na minha experiência, o uso da versão de 32 bits é mais fácil. A menos que você esteja trabalhando em aplicativos que fazem uso pesado de memória (principalmente computação científica, que usa mais de 2 GB de memória), é melhor ter versões de 32 bits porque:

  1. Você geralmente usa menos memória.
  2. Você tem menos problemas usando o COM (já que está no Windows).
  3. Se você precisar carregar DLLs, elas provavelmente também serão de 32 bits. O Python de 64 bits não pode carregar bibliotecas de 32 bits sem alguns hacks pesados ​​executando outro Python, desta vez em 32 bits e usando o IPC.
  4. Se você precisar carregar as DLLs compiladas, precisará compilá-las em 64 bits, o que geralmente é mais difícil de executar (especialmente se você estiver usando o MinGW no Windows).
  5. Se você usar o PyInstaller ou o py2exe, essas ferramentas gerarão executáveis ​​com a mesma testemunha do seu intérprete Python.
Ronan Paixão
fonte
6

Você não precisa usar 64 bits, pois o Windows emulará programas de 32 bits usando o wow64. Mas o uso da versão nativa (64 bits) fornecerá mais desempenho.

codymanix
fonte
4

Use a versão de 64 bits somente se você precisar trabalhar com grandes quantidades de dados; nesse cenário, os 64 bits terão melhor desempenho com o inconveniente que John La Rooy disse; caso contrário, fique com os 32 bits.

Ariel Jiménez
fonte
2

Eu tive problemas ao executar o aplicativo python (executando grandes quadros de dados) em 32 - recebi a mensagem MemoryError, enquanto em 64 funcionou bem.

AlKo
fonte
0

Pacotes de aprendizado de máquina como o tensorflow 2.x foram projetados para funcionar apenas em Python de 64 bits, pois consomem muita memória.

H_J
fonte