Soll ich Python 32bit oder Python 64bit verwenden?

143

Ich habe eine Win7 64bit Installation. Muss ich Python 64bit verwenden? Was sind die Unterschiede zwischen den 32-Bit- und 64-Bit-Python-Versionen überhaupt? Unterstützen verschiedene Python-Pakete (wie South, Django, Mysqldb usw.) nur 32bit / 64bit?

Jonathan
quelle
2
Verwandte stackoverflow.com/q/4567856/460775
EMBarbosa

Antworten:

91

In der 64-Bit-Version kann ein einzelner Prozess mehr RAM als 32-Bit verwenden. Möglicherweise verdoppelt sich jedoch der Speicherbedarf, je nachdem, was Sie im RAM speichern (insbesondere Ganzzahlen).

Wenn Ihre App beispielsweise> 2 GB RAM benötigt und Sie von 32 Bit auf 64 Bit wechseln, werden Sie möglicherweise feststellen, dass Ihre App jetzt> 4 GB RAM benötigt.

Überprüfen Sie, ob alle Module von Drittanbietern in 64-Bit verfügbar sind. Andernfalls ist es möglicherweise einfacher, sich in der Zwischenzeit an 32-Bit zu halten

John La Rooy
quelle
13
Afaik, es gibt keine 64-Bit-Binärdateien für MysqlDB - das ist der Grund, warum ich bei 32-Bit-Python bleibe.
Jochen Ritzel
12
Müssen die Module von Drittanbietern 64-Bit wirklich explizit unterstützen?
Jonathan
8
Ich habe in den letzten Monaten (fünf Jahre nach diesem Beitrag) 64-Bit-Python 2.7 verwendet, und obwohl ich sagen würde, dass es sich definitiv lohnt, ist es ziemlich schön, auf all diesen RAM zuzugreifen, wenn Sie nicht so viel Zeit verschwenden möchten Verwalten Ihrer Daten - Es gibt immer noch mehrere Bibliotheken, die entweder etwas nervig sind, 64-Bit-Versionen zu erhalten, oder in vielen Fällen fast unmöglich zu verwenden sind (32-Bit-DLLs sind ein Beispiel für eine Ressource, ohne die ich noch keine Hebelwirkung erzielen konnte Laden einer 32-Bit-Version von Python)
Darren Ringer
12
Es gibt auch das Gegenteil: Tensorflow ist nur für 64-Bit-Python unter Windows verfügbar, außer wenn Sie es erstellen möchten.
TrakJohnson
28

Nach meiner Erfahrung ist die Verwendung der 32-Bit-Version problemloser. Wenn Sie nicht an Anwendungen arbeiten, die viel Speicher beanspruchen (hauptsächlich wissenschaftliches Rechnen, das mehr als 2 GB Speicher verwendet), sind Sie mit 32-Bit-Versionen besser dran, weil:

  1. Sie verwenden im Allgemeinen weniger Speicher.
  2. Sie haben weniger Probleme mit COM (da Sie unter Windows arbeiten).
  3. Wenn Sie DLLs laden müssen, sind diese höchstwahrscheinlich auch 32-Bit. Python 64-Bit kann keine 32-Bit-Bibliotheken laden, ohne dass einige schwere Hacks ein anderes Python ausführen, diesmal in 32-Bit, und IPC verwenden.
  4. Wenn Sie DLLs laden müssen, die Sie selbst kompilieren, müssen Sie sie auf 64-Bit kompilieren, was normalerweise schwieriger ist (insbesondere bei Verwendung von MinGW unter Windows).
  5. Wenn Sie jemals PyInstaller oder py2exe verwenden, generieren diese Tools ausführbare Dateien mit der gleichen Bitigkeit wie Ihr Python-Interpreter.
Ronan Paixão
quelle
6

Sie müssen kein 64-Bit verwenden, da Windows 32-Bit-Programme mit wow64 emuliert. Wenn Sie jedoch die native Version (64 Bit) verwenden, erhalten Sie mehr Leistung.

Codymanix
quelle
4

Verwenden Sie die 64-Bit-Version nur, wenn Sie mit großen Datenmengen arbeiten müssen. In diesem Szenario erzielen die 64-Bit-Versionen eine bessere Leistung, da John La Rooy dies als unpraktisch bezeichnet. Wenn nicht, bleiben Sie bei den 32 Bits.

Ariel Jiménez
quelle
2

Ich hatte Probleme beim Ausführen der Python-App (Ausführen großer Datenrahmen) in 32 - habe eine MemoryError-Nachricht erhalten, während es auf 64 gut funktionierte.

AlKo
quelle
0

Pakete für maschinelles Lernen wie Tensorflow 2.x funktionieren nur mit 64-Bit-Python, da sie speicherintensiv sind.

H_J
quelle